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

多層結構的思路也如此

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章