Javascript es6通过id连接具有不同元素数的对象数组

Javascript es6通过id连接具有不同元素数的对象数组,javascript,ecmascript-6,Javascript,Ecmascript 6,我想通过id连接两个数组,但元素数量不同,有什么建议吗 谢谢 数组1 soccer = [{id: 1, name: 'Munich'}, {id: 2, name: 'Dortmund'}] 阵列2 points = [{id: 2, value: 40}] 结果 result = [{id: 1, name: 'Munich'}, {id: 2, name: 'Dortmund', value: 40}] 我的尝试失败了 teams.map((item,i)=>{ if(

我想通过id连接两个数组,但元素数量不同,有什么建议吗

谢谢

数组1

soccer = [{id: 1, name: 'Munich'}, {id: 2, name: 'Dortmund'}]
阵列2

points = [{id: 2, value: 40}]
结果

result = [{id: 1, name: 'Munich'}, {id: 2, name: 'Dortmund', value: 40}]
我的尝试失败了

teams.map((item,i)=>{
    if(item.id === points[i].id){
      return Object.assign({},item, points[i])
    }
})

这应该可以:

soccer.map(item => ({...item, ...points.find(({id}) => id === item.id)}))

它基本上是
soccer
阵列,使用
id
作为键,同时使用
soccer
points
阵列中项目的道具。请注意,给定顺序,如果两个阵列中都有同名道具,
one获胜(因为要添加的是后者)。

是否有任何情况下阵列2将包含id为3的1个项目?你想把它放在结果数组中吗?你知道,你可以从控制台复制和粘贴。不需要使用屏幕阅读器和搜索引擎无法读取的图像…
团队
在您的尝试中应该是
足球
?如果是这样的话,
soccer
/
team
中有更多的元素,如
points
中的元素,但您尝试使用
teams
/
soccer
索引访问
points
中的元素。map()应始终返回一个元素。现在你只会返回匹配的对象/团队。这个问题在堆栈溢出上有很多重复项。。。