Estoy tratando de mover todo en Array Results fuera y dentro del objeto original
este es el objeto
{ "Name": "John", "Results": [ { "Type": "DB", "Immediate_Action": "No", } ] }Debe tener un aspecto como este
{ "Name": "John", "Type": "DB", "Immediate_Action": "No", }Lo que tengo hasta ahora es esto
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; }); };Simplemente puede distribuir la matriz de Results en una llamada Object.assign() .
const input = { "Name": "John", "Results": [{ "Type": "DB", "Immediate_Action": "No", }, { "Another": "value" }] }; const { Results, ...refactored } = input; Object.assign(refactored, ...Results); console.log(refactored)sin embargo, se unirá al primer resultado con el índice 0, puede expandirlo
const data = { "Name": "John", "Results": [ { "Type": "DB", "Immediate_Action": "No", } ] } const mapOscarResults = (data) => { for (let i in Object.keys(data)){ if (Array.isArray(data[Object.keys(data)[i]])){ newKey = data[Object.keys(data)[i]][0] data = {... data, ...newKey} delete data[Object.keys(data)[i]] } } return data }; console.log(mapOscarResults(data))Este código funciona para tu ejemplo:
const { Results: results, ...rest } = { "Name": "John", "Results": [ { "Type": "DB", "Immediate_Action": "No", } ] } const res = {...rest, ...results.reduce((prev, curr) => ({ ...prev, ...curr }), {})} console.log(res) Pero no sé qué espera cuando la matriz de Results tiene más de un elemento.
En esa condición, si este código no satisface sus necesidades, pídame que lo cambie.