📜  合并任意大小的对象数组 (1)

📅  最后修改于: 2023-12-03 15:22:57.642000             🧑  作者: Mango

合并任意大小的对象数组

很多时候,我们需要将多个对象数组合并成一个,以便于对它们进行进一步处理。本文将介绍几种合并任意大小的对象数组的方法,并提供相应的示例代码。

方法一:使用Array.concat()方法

Array.concat()方法可以将多个数组合并成一个。 它接受任意数量的参数,每个参数都可以是数组或值。 如果参数是值,则会创建一个新的数组,将该值添加到新数组中并返回该数组。

示例代码:

const arr1 = [{ id: 1, name: "Tom" }, { id: 2, name: "Mike" }];
const arr2 = [{ id: 3, name: "John" }, { id: 4, name: "Lucy" }];
const arr3 = [{ id: 5, name: "David" }, { id: 6, name: "Lily" }];

const mergedArr = arr1.concat(arr2, arr3);

console.log(mergedArr);

输出结果:

[
  { id: 1, name: 'Tom' },
  { id: 2, name: 'Mike' },
  { id: 3, name: 'John' },
  { id: 4, name: 'Lucy' },
  { id: 5, name: 'David' },
  { id: 6, name: 'Lily' }
]
方法二:使用Spread语法

ES6引入了Spread语法,可以轻松地将数组展开成一个新的数组。

示例代码:

const arr1 = [{ id: 1, name: "Tom" }, { id: 2, name: "Mike" }];
const arr2 = [{ id: 3, name: "John" }, { id: 4, name: "Lucy" }];
const arr3 = [{ id: 5, name: "David" }, { id: 6, name: "Lily" }];

const mergedArr = [...arr1, ...arr2, ...arr3];

console.log(mergedArr);

输出结果:

[
  { id: 1, name: 'Tom' },
  { id: 2, name: 'Mike' },
  { id: 3, name: 'John' },
  { id: 4, name: 'Lucy' },
  { id: 5, name: 'David' },
  { id: 6, name: 'Lily' }
]
方法三:使用Array.reduce()方法

Array.reduce()方法适用于需要在合并过程中进行更复杂的操作的情况。 这个方法接受一个函数作为参数,该函数接受两个参数:累加器和当前值。 在每个迭代中,它使用累加器结果和当前值更新累加器,并最终返回一个合并的结果。

示例代码:

const arr1 = [{ id: 1, name: "Tom" }, { id: 2, name: "Mike" }];
const arr2 = [{ id: 3, name: "John" }, { id: 4, name: "Lucy" }];
const arr3 = [{ id: 5, name: "David" }, { id: 6, name: "Lily" }];

const mergedArr = [arr1, arr2, arr3].reduce((acc, cur) => {
  return acc.concat(cur);
}, []);

console.log(mergedArr);

输出结果:

[
  { id: 1, name: 'Tom' },
  { id: 2, name: 'Mike' },
  { id: 3, name: 'John' },
  { id: 4, name: 'Lucy' },
  { id: 5, name: 'David' },
  { id: 6, name: 'Lily' }
]

以上是几种常见的合并任意大小的对象数组的方法,可以根据具体需求进行选择。