如何用javascript格式化对象数组?

问题描述 投票:0回答:1

需要格式化我的对象数组以使其具有嵌套对象。

尝试使用地图,并缩小。似乎无法正确设置格式。当前正在获取。

[
  {
    "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"}
javascript arrays object data-conversion map-function
1个回答
0
投票
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'上,并将其返回以供下一个循环添加到

© www.soinside.com 2019 - 2024. All rights reserved.