合并两个数组中的对象

时间:2016-12-18 18:33:30

标签: javascript arrays ecmascript-6

尝试以最高效的方式将两个数组(共享一个id)中的对象合并为一个与原始两个数组长度相同的全新数组。

例如:

// Merge these two arrays
const arrayOne = [
  { id: 34560, name: "John" },
  { id: 23123, name: "Jake" },
  { id: 11023, name: "Peter" },
  { id: 29221, name: "Sara" }
];

const arrayTwo = [
  { id: 34560, age: 24 },
  { id: 23123, age: 30 },
  { id: 11023, age: 19 },
  { id: 29221, age: 20 }
];

// Into this array
const merged = [
  { id: 34560, name: "John", age: 24 },
  { id: 23123, name: "Jake", age: 30 },
  { id: 11023, name: "Peter", age: 19 },
  { id: 29221, name: "Sara", age: 20 }
];

这是我到目前为止所得到的:

const mergedArray = [];

arrayOne.forEach(x => {
  arrayTwo.forEach(y => {
    if (x.id === y.id) {
      mergedArray.push(Object.assign(x, y));
    }
  })
})

感谢任何帮助。提前谢谢。

0 个答案:

没有答案