JavaScript将2个数组根据其相同的对象属性合并成一个数组

1,469 阅读1分钟

初始数组

let a = [{id:'1',name:'Anna'},{id:'2',name:'job'},{id:'3',name:'zoe'}]
let b = [{id:'1',age:'16'},{id:'2'},{id:'3',age:'18'}];

将2个数组根据对象中的相同的属性值合并。

例:根据id合并

function merge(a,b){
  let c = [];
  for(let u of a) {
    const temp = b.filter(i => i.id === u.id)[0];
    c.push({...u, ...temp});
  }
  return c;
}
let a = [{id:'1',name:'Anna'},{id:'2',name:'job'},{id:'3',name:'zoe'}]
let b = [{id:'1',age:'16'},{id:'2'},{id:'3',age:'18'}];
merge(a,b)

/* 结果
   [{id: "1", name: "Anna", age: "16"},
    {id: "2", name: "job"},
    {id: "3", name: "zoe", age: "18"}]
 */