3 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
給你來一個(gè)不考慮性能的
var arr = [
{"code": "a", "poll": 7},
{"code": "b", "poll": 2},
{"code": "c", "poll": 18},
{"code": "a", "poll": 5},
{"code": "c", "poll": 12},
{"code": "a", "poll": 1}
];
let arr1 = arr.sort((pre, next) => pre.code > next.code).reduce((pre, v) => {
let lastIndex = pre.length - 1;
if (lastIndex >= 0 && pre[lastIndex].code === v.code) {
pre[lastIndex].poll += v.poll;
} else {
pre.push(Object.assign({}, v));
}
return pre;
}, []);
console.log(arr1);
再來個(gè)一次遍歷的,以空間換時(shí)間。
function pollAdd(arr) {
let res = [];
let tmp = {};
arr.forEach((v) => {
if (!tmp.hasOwnProperty(v.code)) {
tmp[v.code] = res.length;
return res.push(Object.assign({}, v));
}
res[tmp[v.code]].poll += v.poll;
});
return res;
}

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
你這是js吧
var arr = [
{"code": "a", "poll": 7},
{"code": "b", "poll": 2},
{"code": "c", "poll": 18},
{"code": "a", "poll": 5},
{"code": "c", "poll": 12},
{"code": "a", "poll": 1}
];
var newArr = [];
for (i in arr) {
if(typeof(newArr[arr[i].code]) == 'undefined'){
newArr[arr[i].code] = 0;
}
newArr[arr[i].code] += arr[i].poll;
}
添加回答
舉報(bào)