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
多層結構的思路也如此