¿Puede alguien ayudarme a convertir las siguientes matrices en objetos?
let data = [ { name: "A", job: "soft", address: "ggn" }, { name: "B", job: "software", address: "GGN" }, { name: "C", job: "software", address: "GGN" }, ]; Output: { “A”:{job: “software”, address: “GGN”}, “B”:{job: “software”, address: “GGN”}, “C”:{job: “software”, address: “GGN”} };Aquí no quiero nombre y su valor de objetos.
Intenté usar la siguiente solución:
const output = data.reduce((object, x) => { return { ...object, [x.name]: x }; }, {});Pero estoy recibiendo una respuesta diferente. ¿Alguien puede ayudar dando una solución óptima? Podemos resolverlo usando el operador reduce y rest.
Puedes usarlo así:
let data = [ { name: "A", job: "soft", address: "ggn" }, { name: "B", job: "software", address: "GGN" }, { name: "C", job: "software", address: "GGN" }, ]; const output = data.reduce((acc, curr) => { const { name, ...rest } = curr; acc[name] = rest return acc; }, {});O:
const output = data.reduce((acc, curr) => { const { name, ...rest } = curr; return { ...acc, [name]: rest }; }, {});Puedes hacer esto
let data = [{ name: "A", job: "soft", address: "ggn" }, { name: "B", job: "software", address: "GGN" }, { name: "C", job: "software", address: "GGN" }, ]; const output = data.reduce((object, x) => { const { name, job, address } = x; object[name] = { job, address } return object; }, {}); console.log(output) let data = [ {name: 'A', job: 'soft', address: 'ggn'}, {name: 'B', job: 'software', address: 'GGN'}, {name: 'C', job: 'software', address: 'GGN'}, ]; const output = {}; const obj = data.reduce((acc, el) => { const { name, job, address } = el; return { ...acc, [name]: { job, address} }; }, output); console.log(obj);