Javascript como converter objeto com valores em objeto do par de valores-chave [duplicado]

Sep 15 2020

Como faço para converter um setobjeto com apenas valores em objeto com pares de valores-chave contendo o mesmo valor que key?

let set = new Set()
set.add(a)
set.add(example)
console.log(set)
//OUTPUT {"a", "example"}

//perform some operation to get result below ?

para

{"a":"a","example":"example"}

Respostas

6 Reyno Sep 15 2020 at 15:57

Set tem um método de entradas que você pode passar para Object.fromEntries

let set = new Set();
set.add("a");
set.add("example");

const result = Object.fromEntries(set.entries());

console.log(result);

1 KooiInc Sep 15 2020 at 15:56

Espalhe o conjunto para um Arraye reduza-o para umObject

const set = new Set();
set.add("a");
set.add("b");
set.add("valueC");
console.log(
  [...set]
    .reduce( (acc, val) => ({...acc, [val]: val}), {} )
);

1 111e75b0-a14c-48df-a295-4c1a68 Sep 15 2020 at 15:56

Use forEach:

const set = new Set();
set.add('a');
set.add('example');
const result = {};
set.forEach(i => result[i] = i);

console.log(result)

1 hgb123 Sep 15 2020 at 15:56

Você pode convertê-lo em uma matriz de valor e fazer o Array.prototype.reduce

let set = new Set()
set.add('a')
set.add('example')

const res = Array.from(set).reduce((acc, val) => ({ ...acc, [val]: val }), {})

console.log(res)