您应该使用属性将未找到的每个对象分配给结果.key
。
如果找到它,则需要添加它.val
。
var temp = {};
var obj = null;
for(var i=0; i < objArr.length; i++) {
obj=objArr[i];
if(!temp[obj.key]) {
temp[obj.key] = obj;
} else {
temp[obj.key].val += obj.val;
}
}
var result = [];
for (var prop in temp)
result.push(temp[prop]);
另外,部分问题是您正在重用item
变量来引用的值.key
,因此您失去了对该对象的引用。