需要格式化我的对象数组以使其具有嵌套对象。
尝试使用地图,并缩小。似乎无法正确设置格式。当前正在获取。
[
{
"date": "2019-10-01T00:00:00Z",
"total": 20
}
]
需要采用这种格式。
[
{
name: 'Total Call Volume',
data: {
'2019-01-01 00:00:00 -0800': 0,
'2019-01-01 00:00:00 -0800': 88,
}
}
]
var arr = this.$store.state.aggregatedCallVolumeData;
var mapData = arr.map(item => ({
date: item.startTime,
total: item.dataValues.TOTAL_CALL_VOLUME
}));
var data = mapData.reduce((acc, value) => {
acc[value.date] = acc[value.date] ? acc[value.date] : [];
acc[value.date] ? acc[value.date].push(value.total) : [value.total];
return acc;
}, {});
let result = Object.entries(data).map(d => ({ id: d[0] + ':' + d[1] }) );
console.log(result)
控制台输出为
0: {id: "2019-10-27T00:00:00Z:0"}
1: {id: "2019-10-28T00:00:00Z:88"}
arr.reduce((obj, item) => {
obj.data[item.date] = item.total;
return obj;
}, {
name: 'Total Call Volume',
data: {}
})
类似的东西。您可能需要在'obj'和'item'参数之间切换。基本上,obj param是reduce函数中的第二个参数。因此obj是我在末尾添加的基础对象,而“ item”参数是数组中的每个项目。因此,我们循环并继续将值添加到'obj'上,并将其返回以供下一个循环添加到