数组嵌套对象改为echarts折线图所需格式
原数据格式
[
{
0: '43',
time: '2021-12-09'
},
{
0: '43',
time: '2021-12-10'
},
{
1: '52',
time: '2021-12-10'
},
{
2: '62',
time: '2021-12-10'
},
{
0: '43',
time: '2021-12-11'
},
{
1: '43',
time: '2021-12-11'
}
]
目标数据格式
- 首先合并有相同属性值的对象
具体实现代码
let level = '';
let demo = [];
let num = -1;
arr.forEach(key => {
for (let item in key) {
if (level != key.time) {
level = key.time;
num++;
demo[num] = {};
}
demo[num][item] = key[item];
}
})
此处参考:(https://blog.csdn.net/GongWei_/article/details/109580406)
第二步有属性值则将该属性值加进data中,没有则添加值为0
具体实现代码
let test = []
let obj = []
demo.forEach(item => {
for (let i in item) {
if (i != "time") {
if (test.indexOf(i) == -1) {
test.push(i)
}
}
}
})
test.forEach((item, index) => {
obj.push({
name: item,
type: "line",
data: []
})
demo.forEach(val => {
obj[index].data.push(val[item] ? val[item] : '0')
})
})