【发布时间】:2019-03-19 06:24:17
【问题描述】:
我有一个对象数组,每个对象有 4 个属性,如下所示:
let arr = [
{name: john, lastName: smith, counter:1, city: New York}
{name: john, lastName: smith, counter:1, city: New York}
{name: emilio, lastName: kouri, counter:1, city: euy}
{name: john, lastName: smith, counter:1, city: New York}
]
我想减少它以使其返回(总和)
[{name: emilio, lastName: kouri, counter:1, city: euy}
{name: john, lastName: smith, counter:3, city: New York}]
这是我现在使用的代码,它正确地减少了它但只返回[计数器,名称],我希望它返回每个对象的所有四个属性,怎么做?
let counts = arr.reduce((prev, curr) => {
let count = prev.get(curr.name) || 0;
prev.set(curr.name, curr.counter + count);
return prev;
}, new Map());
let reducedObjArr = [...counts].map(([key, value]) => {
return {key, value}
})
console.log('reducido',reducedObjArr);
【问题讨论】:
标签: javascript reduce