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