{ "chartOptions": { "type": "line", "isStacked": false, "minValue": 0, "maxValue": 600000, "filled": false, "showAxis": true, "chartLabels":[ "May 23", "May 24", "May 25", "May 26", "May 27", "May 28" ], "chartDatasets": [ { "label": "Mentions", "backgroundColor": "rgb(81, 45, 168)", "stack": "Stack 0", "data": [ 1100, 800, 750, 1200, 400, 600 ] } ] },
Thats the original array I have from backend and now I want to build something like this:
const data = { labels: ['May 23', 'May 24', 'May 25', 'May 26', 'May 27', 'May 28'], datasets: [{ label: 'Mentions', borderDash: [5, 3], data: [6500, 5900, 8000, 8100, 5600, 10000] }] }
So the chartDatasets will be datasets and the chartLabels will be labels.. I think this is pretty easy but I don’t know how I can do it.
I’m saving the original array in state so..
Thanks
Advertisement
Answer
If you have to modify single time you can simply assign in object like this:
const data = { "chartOptions": { "type": "line", "isStacked": false, "minValue": 0, "maxValue": 600000, "filled": false, "showAxis": true, }, "chartLabels":[ "May 23", "May 24", "May 25", "May 26", "May 27", "May 28" ], "chartDatasets": [ { "label": "Mentions", "backgroundColor": "rgb(81, 45, 168)", "stack": "Stack 0", "data": [ 1100, 800, 750, 1200, 400, 600 ] } ] } const modifiedData = { labels:data.chartLabels, datasets:data.chartDatasets, } console.log(modifiedData)
updated according to your requirement adding extra key in data set.
const data = { "chartOptions": { "type": "line", "isStacked": false, "minValue": 0, "maxValue": 600000, "filled": false, "showAxis": true, }, "chartLabels":[ "May 23", "May 24", "May 25", "May 26", "May 27", "May 28" ], "chartDatasets": [ { "label": "Mentions", "backgroundColor": "rgb(81, 45, 168)", "stack": "Stack 0", "data": [ 1100, 800, 750, 1200, 400, 600 ] } ] } const modifiedData = { labels:data.chartLabels, datasets:data.chartDatasets.map(set => ({...set, yAxisID:"bar-y-axis"})), } console.log(modifiedData)