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


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/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM