同项相加
let arr = [
{ name: ‘大庆’, val: 100 },
{ name: ‘大庆’, val: 200 },
{ name: ‘新疆’, val: 200 },
{ name: ‘新疆’, val: 300 },
{ name: ‘长庆’, val: 300 }
];
let temp = {};
for (let i = 0; i < arr.length; i++) {
let item = arr[i];
let { name, val } = item;
if (temp[name] == null) {
temp[name] = item;
} else {
temp[name]['val'] += val;
}
}
console.log('中间状态: ', temp);
let res = [];
Object.keys(temp).forEach(item => {
res.push(temp[item]);
})
console.log('结果: ', res);