📅  最后修改于: 2023-12-03 15:22:57.642000             🧑  作者: Mango
很多时候,我们需要将多个对象数组合并成一个,以便于对它们进行进一步处理。本文将介绍几种合并任意大小的对象数组的方法,并提供相应的示例代码。
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' }
]
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()
方法适用于需要在合并过程中进行更复杂的操作的情况。 这个方法接受一个函数作为参数,该函数接受两个参数:累加器和当前值。 在每个迭代中,它使用累加器结果和当前值更新累加器,并最终返回一个合并的结果。
示例代码:
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' }
]
以上是几种常见的合并任意大小的对象数组的方法,可以根据具体需求进行选择。