小编amu*_*u03的帖子

数组中多个对象的总和值

这就是我所拥有的:

const arrayA = [{name:'a', amount: 10, serviceId: '23a', test:'SUCCESS'},
                {name:'a', amount: 9, test:'FAIL'}, 
                {name:'b', amount: 15, serviceId: '23b', test:'SUCCESS'}]

 
Run Code Online (Sandbox Code Playgroud)

(请注意,有些对象没有“serviceId”)

我想得到:

 [{name:'a', amount: 19, test:'FAIL'},
  {name:'b', amount: 15, test:'SUCCESS'}]
Run Code Online (Sandbox Code Playgroud)
  • 我想对按名称分组的字段求和amount
  • “测试”字段应该是FAIL是否有任何具有该值的对象FAIL(按名称分组)
  • 我不关心 的值serviceId,也不想将其包含在新对象中。

我已经搜索并尝试了这样的事情:(参考:/sf/answers/3523685231/

const result = Object.values(arrayA.reduce((r, o) => (r[o.name]
  ? (r[o.name].amount += o.amount)
  : (r[o.name] = {...o}), r), {}));
Run Code Online (Sandbox Code Playgroud)

但仍然不确定如何分配test字段。

任何帮助,将不胜感激!

javascript reduce typescript

0
推荐指数
1
解决办法
1869
查看次数

标签 统计

javascript ×1

reduce ×1

typescript ×1