簡體   English   中英

合並到匹配 id 的對象數組

[英]merge to objects array matching id

兩個 arrays

arr1 = [
{id: 1, name: john doe},
{id: 2, name: uncle bob},
{id: 3, name: patrick star}
]

arr2 = [
{id: 1, gems: 500},
{id: 2, gems: 1000},
{id: 3, gems: 750},
{id: 2, gems: 8000},
{id: 3, gems: 7750},
{id: 1, gems: 1200},
{id: 3, gems: 950},
]

將它們合並在一起,將 id 交換為它們對應的名稱和它們的寶石總和?

預期 output:

arr3 = [
{name: 'john doe', gems: 1700}
{name: 'uncle bob', gems: 9000}
{name: 'patrick star', gems: 9450}
]

使用Array#reduce

 let arr1 = [ {id: 1, name: 'john doe'}, {id: 2, name: 'uncle bob'}, {id: 3, name: 'patrick star'} ], arr2 = [ {id: 1, gems: 500}, {id: 2, gems: 1000}, {id: 3, gems: 750}, {id: 2, gems: 8000}, {id: 3, gems: 7750}, {id: 1, gems: 1200}, {id: 3, gems: 950}, ]; let arr3 = arr2.reduce((acc,curr)=>{ let other = acc.find(({id})=>id===curr.id); other.gems = (other.gems || 0) + curr.gems; return acc; }, arr1).map(({name,gems})=>({name,gems})); console.log(arr3);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM