I am having an object as below
[
{
assetName: "equity",
colorCode: "#7C80A2",
values: [
{ year: "2025", assetValue: 10 },
{ year: "2030", assetValue: 10 },
{ year: "2035", assetValue: 0 },
{ year: "2040", assetValue: 0 },
{ year: "2045", assetValue: 0 },
{ year: "2050", assetValue: 0 },
{ year: "2055", assetValue: 0 },
{ year: "2060", assetValue: 0 }
]
},
{
assetName: "fixedIncome",
colorCode: "#C39936",
values: [
{ year: "2025", assetValue: 10 },
{ year: "2030", assetValue: 14 },
{ year: "2035", assetValue: 11 },
{ year: "2040", assetValue: 10 },
{ year: "2045", assetValue: 8 },
{ year: "2050", assetValue: 1 },
{ year: "2055", assetValue: 0 },
{ year: "2060", assetValue: 0 }
]
},
{
assetName: "opportunistics",
colorCode: "#5E6873",
values: [
{ year: "2025", assetValue: 18 },
{ year: "2030", assetValue: 16 },
{ year: "2035", assetValue: 17 },
{ year: "2040", assetValue: 10 },
{ year: "2045", assetValue: 12 },
{ year: "2050", assetValue: 7 },
{ year: "2055", assetValue: 3 },
{ year: "2060", assetValue: 0 }
]
},
{
assetName: "assets",
colorCode: "#5E8987",
values: [
{ year: "2025", assetValue: 14 },
{ year: "2030", assetValue: 14 },
{ year: "2035", assetValue: 8 },
{ year: "2040", assetValue: 14 },
{ year: "2045", assetValue: 13 },
{ year: "2050", assetValue: 10 },
{ year: "2055", assetValue: 5 },
{ year: "2060", assetValue: 0 }
]
}
];
I want output as below
[
{ year: 2025, equity: 10, fixedIncome: 10, opportunistics: 18, assets: 14 },
{ year: 2030, equity: 10, fixedIncome: 14, opportunistics: 16, assets: 14 },
{ year: 2035, equity: 0, fixedIncome: 11, opportunistics: 17, assets: 8 },
{ year: 2040, equity: 0, fixedIncome: 10, opportunistics: 10, assets: 14 },
{ year: 2045, equity: 0, fixedIncome: 8, opportunistics: 12, assets: 13 },
{ year: 2050, equity: 0, fixedIncome: 1, opportunistics: 7, assets: 10 },
{ year: 2055, equity: 0, fixedIncome: 0, opportunistics: 3, assets: 5 },
{ year: 2060, equity: 0, fixedIncome: 0, opportunistics: 0, assets: 0 }
];
I am trying below code, but not able to get the expected result
function transformData(data) {
let newData = [];
for (let i = 0; i < data.length; i++) {
// data length is 4
assetNameString = data[i].assetName;
values = data[i].values;
for (let j = 0; j < values.length; j++) {
// values lenght is 8
newData.push({
year: values[j].year,
assetValue: values[j].assetValue
});
}
}
console.log(newData);
}
transformData(data);
Any help is highly appreciated.