listMap 结构根据key值相同,累加或合并其他的属性

listMap 结构根据key值相同,累加或合并其他的属性

example:
// 原数组
[
	{key:'name',number:2},
	{key:'code',number:3},
	{key:'age',number:4},
	{key:'name',number:5}
]
//预期
[
	{key:'name',number:7},
	{key:'code',number:3},
	{key:'age',number:4},
]

逻辑方法

listMap 结构根据key合并其他的属性
//合并相同项
let listMap = [
	{key:'name',number:2},
	{key:'code',number:3},
	{key:'age',number:4},
	{key:'name',number:5}
]
let newlistMap=[];
let  temp = {};
for(var i in listMap) {
	var key= listMap[i].key;
	if(temp[key]) {
	    temp[key].c = temp[key].key;
	    temp[key].number = temp[key].number + listMap[i].number;

	} else {
	    temp[key] = {};
	    temp[key].key = listMap[i].key;
	    temp[key].number = listMap[i].number;

	}
}
for(var k in temp){
	newlistMap.push(temp[k])
}
//end

多层结构的思路也如此

你可能感兴趣的:(JavaScript)