Estoy tratando de devolver varios objetos sin su índice, sin embargo, no puedo encontrar una manera de usar Objects. Esto es lo que he intentado hasta ahora, ¿me estoy perdiendo algo?
const fields = [ 'name', 'age', 'address' ]; const builtFields = [] for (let i = 0; i < fields.length; i++) { builtFields.push( { [fields[i]]: { type: '' } } ) } fields: Object.assign({}, builtFields) console.log(fields) Outputs: fields: { 0: { name: { type: '' } }, 1: { age: { type: '' } }, 2: { address: { type: '' } } } Desired output: fields: { name: { type: '' }, age: { type: '' }, address: { type: '' } }Actualmente está asignando las entradas de la matriz al objeto, mientras que en realidad desea agregar cada elemento de la matriz (que es una entrada) al objeto vacío:
fields: Object.assign({}, ...builtFields)Como solución más corta:
const fields = [ 'name', 'age', 'address' ]; const obj = Object.fromEntries(fields.map(x => [x, { type: '' }])); console.log(obj);