JSFiddle - React, Tailwind, and code Playground
by mkdeveloper2021
JavaScript
const data = {"portfolio": {"name": "portfolio 1","performance": [{"date": "2022-01-01","value": 100},{"date": "2022-01-15","value": 150}, {"date": "2022-02-01","value": 200}],"funds": [{"name": "fund 1","performance": [{"date": "2022-01-01","value": 3}, {"date": "2022-02-01","value": 4}],},{"name": "fund 2","performance": [{"date": "2022-01-01","value": 5}, {"date": "2022-02-01","value": 6}, {"date": "2022-03-01","value": 7}]}]}};
const {name, performance, funds} = data.portfolio;
const result = {
headers: ["date", name, ... funds.map(({name}) => name)],
data: funds[0].performance.map(({date, value}, i) =>
[date, performance[i].value, ...funds.map(({performance: {[i]: {value}}}) => value)]
)
};
console.log(result);
/* Expected result
{
headers: ["date", "portfolio 1", "fund 1", "fund 2"],
data: [["2022-01-01", 100,3, 5], ["2020-01-15", 150, , ], ["2022-02-01", 200, 4, 6]]
}
Note that it does not include "2022-03-01" as portfolio does not have it.
*/
console.log(result);