简体   繁体   English

如何用另一个对象数组更改一个对象数组中的对象值?

[英]How to change object value within an array of objects with one from another array of objects?

Considering the two arrays bellow: 考虑下面的两个数组:

let aaa = [{label: "nu", angle: 5}, {label: "na", angle: 3}]
let bbb= [{label: "nu", angle: 2}, {label: "na", angle: 6}]

How can I add the value on the key from one object with the corresponding one from the next array of objects and return one object or the other. 如何将一个对象的键上的值与下一个对象数组中的对应值相加,然后返回一个对象或另一个对象。

the result should be: 结果应该是:

let ccc= [{label: "nu", angle: 7}, {label: "na", angle: 9}]

I have no idea how to solve this 我不知道该如何解决

You can use Array.reduce() and Array.findIndex() like this: 您可以像这样使用Array.reduce()Array.findIndex()

 let aaa = [{label: "nu", angle: 5}, {label: "na", angle: 3}]; let bbb= [{label: "nu", angle: 2}, {label: "na", angle: 6}]; const ccc = [...aaa, ...bbb].reduce((acc, a) => { const i = acc.findIndex(o => o.label === a.label); if(i === -1) { acc.push(a); return acc; } acc[i].angle += a.angle; return acc; }, []); console.log(ccc); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM