Estoy extrayendo datos de Excel usando JavaScript. La salida se ve así.
{ "Responsible": "Grey", "Goal": 0.823, "Jan": 0.8621397507374327, "Feb": 0.8605700219733681, "Mrz": 0.8870898346258058, "Apr": 0.8529801908413164, "Mai": 0.8507431241640211 }Quiero dividir los datos en lo siguiente:
{ "Responsible": "Grey", "Goal": 0.823, "Month": 0.8621397507374327, } { "Responsible": "Grey", "Goal": 0.823, "Month": 0.8605700219733681, } { "Responsible": "Grey", "Goal": 0.823, "Month": 0.8870898346258058, } { "Responsible": "Grey", "Goal": 0.823, "Month": 0.8529801908413164, } { "Responsible": "Grey", "Goal": 0.823, "Month": 0.8507431241640211 }Mi código se ve así:
Ausgabe = []; _.forEach(data, element => { obj = { Responsible: element.Responsible, Goal: element["Goal \r\n2022"] , Jan : element["Jan-22"], Feb: element["Feb-22"], Mrz : element["Mar-22"], Apr : element["Apr-22"], Mai : element["May-22"], } Ausgabe.push(obj) })Los datos se proporcionan en el campo de datos, que se puede editar o sobrescribir y se devuelve por defecto al final.
Usa la desestructuración para extraer el Responsible , el Goal y el resto de las propiedades del objeto. Usa Object.entries() para obtener una matriz de pares [key, value] del rest e itérala con Array.map() para crear los objetos:
const fn = ({ Responsible, Goal, ...rest }) => Object.entries(rest) .map(([k, v]) => ({ Responsible, Goal, [k]: v })) const obj = { "Responsible": "Grey", "Goal": 0.823, "Jan": 0.8621397507374327, "Feb": 0.8605700219733681, "Mrz": 0.8870898346258058, "Apr": 0.8529801908413164, "Mai": 0.8507431241640211 } const result = fn(obj) console.log(result) Si solo desea el valor del mes, use Object.values() en lugar de entradas:
const fn = ({ Responsible, Goal, ...rest }) => Object.values(rest) .map(Month => ({ Responsible, Goal, Month })) const obj = { "Responsible": "Grey", "Goal": 0.823, "Jan": 0.8621397507374327, "Feb": 0.8605700219733681, "Mrz": 0.8870898346258058, "Apr": 0.8529801908413164, "Mai": 0.8507431241640211 } const result = fn(obj) console.log(result)