【发布时间】:2022-01-09 18:20:06
【问题描述】:
我有一个这样的数组:
const inputArray = [
{
userId: 1,
sum: 30,
},
{
userId: 1,
sum: 20,
},
{
userId: 2,
sum: 50,
},
{
userId: 2,
sum: 80,
},
];
然后我写了一个函数,通过key对值求和,得到如下结果:
const output = [
{
userId: 1,
sum: 50,
},
50,
{
userId: 2,
sum: 130,
},
130,
];
如何纠正这个错误?功能代码如下:
const output = inputArray.reduce((accumulator, currentItem) => {
const index = accumulator.findIndex((item) => item.userId === currentItem.userId);
if (index < 0) {
return [...accumulator, currentItem];
} else {
return [...accumulator, (accumulator[index].sum += currentItem.sum)];
}
}, []);
【问题讨论】:
-
预期结果是什么?
-
@VLAZ 我想他只是想要增加 sum 属性的同一个数组
-
@Nick 我认为在问题本身中包含所有相关信息会很好。
-
这样写...
标签: javascript reduce