繁体   English   中英

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

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

考虑下面的两个数组:

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

如何将一个对象的键上的值与下一个对象数组中的对应值相加,然后返回一个对象或另一个对象。

结果应该是:

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

我不知道该如何解决

您可以像这样使用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