let arr = [
{ name: "王五", id: 13, price: 40 },
{ name: "李四", id: 12, price: 10 },
{ name: "小明", id: 12, price: 30 },
{ name: "张三", id: 1, price: 0 },
{ name: "小红", id: 10, price: 20 },
{ name: "小红0000", id: 10, price: 300 },
];
let id = [];
let pricesum = {};
arr.forEach((item, index) => {
id.push(item.id);
});
id = [...new Set(id)];
id.forEach((ite) => {
pricesum[ite] = 0;
});
arr.forEach((i) => {
pricesum[i.id] = pricesum[i.id] + i.price;
});
arr.forEach((items, index) => {
arr[index].sum = pricesum[items.id];
});
console.log(arr);
}
gen()
输出:
{ name: '王五', id: 3, price: 40, sum: 40 },
{ name: '李四', id: 2, price: 10, sum: 40 },
{ name: '小明', id: 2, price: 30, sum: 40 },
{ name: '张三', id: 1, price: 0, sum: 20 },
{ name: '小红', id: 1, price: 20, sum: 20 }
]