根据对象数组中某个相同的属性,将相同属性对象合并为一个对象,从而得到新的数组

let arr = [
{
timestamp: 1597593600000,
total: 1892,
'合川区': 1
},
{
timestamp: 1597593600000,
total: 1892,
'长沙市': 13
},
{
timestamp: 1597593600000,
total: 1892,
'常德市': 14
},
{
timestamp: 1597680000000,
total: 1892,
'合川区': 1
},
{
timestamp: 1597680000000,
total: 1892,
'长沙市': 10
}
];
根据相同的timestamp,将对象合并,得到这样的格式:
let arr = [
{
timestamp: 1597593600000,
total: 1892,
'合川区': 1,
'长沙市': 13,
'常德市': 14
},
{
timestamp: 1597680000000,
total: 1892,
'合川区': 1,
'长沙市': 10
}
];

上代码:
let endList = [];
_.values(_.groupBy(arr, 'timestamp')).forEach((itemList) => {
let data = {};
itemList.forEach(d => {
data = Object.assign(data, d);
});
return endList.push(data);
});
console.log(endList);
打印出来就是所需格式,其中用的大多是Lodash里面的方法实现,Lodash官网地址:https://www.lodashjs.com/
posted @ 2020-08-20 18:26  依米瑾楠  阅读(2061)  评论(0编辑  收藏  举报