Estoy tratando de mover todo en Array Results fuera y dentro del objeto original
este es el objeto y la matriz Los resultados pueden tener múltiples valores
{ "Name": "John", "Results": [ { "Type": "DB", "Immediate_Action": "No", }, { "Type": "system", "Immediate_Action": "Yes", } ] }Debe tener un aspecto como este
{ "Name": "John", "Type": ["DB","system"] "Immediate_Action": ["No","Yes"] }Lo que tengo hasta ahora es que estos datos no se completarán de inmediato, sino que se repetirán hasta que se complete todo el objeto. Mapped[key] es probablemente incorrecto.
const mapOscarResults = ({ data }) => { return data.map(entry => { let mapped = {...entry}; entry.Results.forEach(key => { let Type = mapped[key.Type] if (mapped[key]) { mapped[key].push(entry.Results[key]); } else { mapped[key] = [entry.Results[key]]; } }); return mapped; }); };Es un buen caso para reducir. Simplemente recopile los valores para las claves de Results en matrices...
const input = { "Name": "John", "Results": [{ "Type": "DB", "Immediate_Action": "No", }, { "Type": "system", "Immediate_Action": "Yes", } ] } let output = { Name: input.Name } output.Results = input.Results.reduce((acc, el) => { let keys = Object.keys(el); keys.forEach(key => { if (!acc[key]) acc[key] = []; acc[key].push(el[key]); }); return acc; }, {}); console.log(output)Esto debería funcionar
const data = { "Name": "John", "Results": [ { "Type": "DB", "Immediate_Action": "No", }, { "Type": "system", "Immediate_Action": "Yes", } ] }; const transformData = data => { const newData = { Name: data.Name }; newData.Type = []; newData.Immediate_Action = []; data.Results.forEach(({ Type, Immediate_Action }) => { newData.Type.push(Type); newData.Immediate_Action.push(Immediate_Action); }); return newData; } const newData = transformData(data); console.log(newData);Intenta usar reducir y entradas
const data = { "Name": "John", "Results": [{ "Type": "DB", "Immediate_Action": "No", }, { "Type": "system", "Immediate_Action": "Yes", } ] }; const restructure = obj => { obj.Results = obj.Results.reduce((accumu, current) => { for (const [key, val] of Object.entries(current)) { accumu[key] = [...accumu[key] ?? '', val] ; } return accumu; }, {}); return obj; } console.log(restructure(data));