[英]How to correctly transform data for a stack chart chartJS (data transformation)?
There is data that comes from the server有来自服务器的数据
const groupedChartData = [
{
duration: '00:00:10',
stats: [
{color: 'red', reason: 'yes', value: 11},
{color: 'green', reason: 'no', value: 33},
]
},
{
duration: '00:01:00',
stats: [
{color: 'black', reason: 'call back', value: 32},
{color: 'green', reason: 'no', value: 77},
]
},
{
duration: '00:10:00',
stats: [
{color: 'red', reason: 'yes', value: 14},
]
}
]
Based on the data from the server, you need to generate the following object for correct display data on the chart, that is, each first value from the stats object in groupedChartData must correspond根据服务端的数据,需要生成如下对象才能在图表上正确显示数据,即groupedChartData中stats对象的每个第一个值必须对应
to the first in the next object, the second to the second, and到下一个对象中的第一个,第二个到第二个,以及
exprected result预期结果
let result = [
{
data: [11, 32, 14],
backgroundColor: ['red', 'black', 'red']
},
{
data: [33,77],
backgroundColor: ['green', 'green']
}
]
I hope the commented code below helps you:我希望下面的注释代码对您有所帮助:
const result = []
groupedChartData.forEach(el=>{
el.stats.forEach((el, ind)=>{
//checking if position is null
if(result[ind] == null){
result[ind] = {data:[], backgroundColor: []}
}
//pushing new values to the new array
result[ind].data.push(el.value)
result[ind].backgroundColor.push(el.color)
})
})
console.log(result)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.