两数组通过id关联,怎样通过js把他们合并成一个数组?

例如

 a = [{id:1,age:10},{id:2,age:20},{id:3,age:30}] 
 b = [{id:3,sex:'男'},{id:1,sex:'男'},{id:2,sex:'女'}]

合并后

c = [{id:1,age:10,sex:'男'},{id:2,age:20,sex:'女'},{id:3,age:30,sex:'男'}]
阅读 5.2k
2 个回答
 var c = [];
            a.forEach(function(val) {
                b.forEach(function(val2){
                    if(val.id===val2.id){
                        c.push({
                            id:val.id,
                            age:val.age,
                            sex:val2.sex
                        })
                    }
                })
            });
            console.log(c);

或者

                a.map(function(val) {
                b.map(function(val2){
                    if(val.id===val2.id){
                        return Object.assign(val,val2);
                    }
                })
            });
            console.log(a);
<script>
  const a = [{id:1,age:10},{id:2,age:20},{id:3,age:30}];
  const b = [{id:3,sex:'男'},{id:1,sex:'男'},{id:2,sex:'女'}];
  let c = [];
  for(let u of a) {
    const temp = b.filter(i => i.id === u.id)[0];
    c.push({...u, ...temp});
  }
  console.log(c);
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题