给定代表一系列事务的对象数组,即
[{ person: 'a', sweets: 5 }, { person: 'b', sweets: 8 }, { person: 'a', sweets: 6 }]
如何有效地整合这些记录,得出每个人的总计数,即:
[{ person: 'a', sweets: '11'}, { person: 'b', sweets: 8 }]
是否有一些我不知道的内置功能,或者我必须制作一个原型(prototype)吗?
最佳答案
您可以使用哈希表进行分组和求和。
var data = [{ person: 'a', sweets: 5 }, { person: 'b', sweets: 8 }, { person: 'a', sweets: 6 }],
grouped = [];
data.forEach(function (a) {
if (!this[a.person]) {
this[a.person] = { person: a.person, sweets: 0 };
grouped.push(this[a.person]);
}
this[a.person].sweets += a.sweets;
}, Object.create(null));
console.log(grouped);
关于javascript - JavaScript 中的聚合记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40330392/