Javascript es6通过id连接具有不同元素数的对象数组
我想通过id连接两个数组,但元素数量不同,有什么建议吗 谢谢 数组1Javascript 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(
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()应始终返回一个元素。现在你只会返回匹配的对象/团队。这个问题在堆栈溢出上有很多重复项。。。