[英]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.