这就是我所拥有的:
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
字段。
任何帮助,将不胜感激!