Estoy buscando una metodología simple para fusionar la matriz del objeto anidado en una matriz del mismo objeto
Aporte:
const data=[ { id: 123, name: "dave", age: 23 , address:{city:"chennai", zipcode:600001}}, { id: 456, name: "chris", age: 23, address:{city:"cbe", zipcode:600002} }, { id: 789, name: "bob", age: 23, address:{city:"tiruppur", zipcode:600003}}, { id: 101, name: "tom", age: 23, address:{city:"erode", zipcode:600004} }, { id: 102, name: "tim", age: 23, address:{city:"selam", zipcode:600005} } ]Salida necesaria:
{ id: 123, name: "dave", age: 23, city:"chennai", zipcode:600001}, { id: 456, name: "chris", age: 23, city:"cbe", zipcode:600002}, { id: 789, name: "bob", age: 23, city:"tiruppur", zipcode:600003}, { id: 101, name: "tom", age: 23, city:"erode", zipcode:600004}, { id: 102, name: "tim", age: 23, city:"selam", zipcode:600005} ]Use una combinación de desestructuración y sintaxis extendida:
const data=[{ id: 123, name: "dave", age: 23 , address:{city:"chennai", zipcode:600001}},{ id: 456, name: "chris", age: 23, address:{city:"cbe", zipcode:600002} },{ id: 789, name: "bob", age: 23, address:{city:"tiruppur", zipcode:600003}},{ id: 101, name: "tom", age: 23, address:{city:"erode", zipcode:600004} },{ id: 102, name: "tim", age: 23, address:{city:"selam", zipcode:600005} }]; const result = data.map(({address, ...rest}) => ({...rest, ...address})); console.log(result); const data=[ { id: 123, name: "dave", age: 23 , address:{city:"chennai", zipcode:600001}}, { id: 456, name: "chris", age: 23, address:{city:"cbe", zipcode:600002} }, { id: 789, name: "bob", age: 23, address:{city:"tiruppur", zipcode:600003}}, { id: 101, name: "tom", age: 23, address:{city:"erode", zipcode:600004} }, { id: 102, name: "tim", age: 23, address:{city:"selam", zipcode:600005} } ]; const result = data.map(item => ({id: item.id, name: item.name, age: item.age, ...item.address})); console.log(result);Puede usar Object.entries para extraer cada propiedad y su valor en la propiedad de address y asignarlo al objeto principal, luego eliminar la propiedad de address .
const data=[{id:123,name:"dave",age:23,address:{city:"chennai",zipcode:600001}},{id:456,name:"chris",age:23,address:{city:"cbe",zipcode:600002}},{id:789,name:"bob",age:23,address:{city:"tiruppur",zipcode:600003}},{id:101,name:"tom",age:23,address:{city:"erode",zipcode:600004}},{id:102,name:"tim",age:23,address:{city:"selam",zipcode:600005}}]; const result = data.map(e => (Object.entries(e.address).forEach(f => e[f[0]] = f[1]), delete e.address, e)) console.log(result)