可以通过使用Types
cr
i
pt
中的reduce
函数
来将两个数组对象合并并返回合并后的数组。首先,我们需要确定两个数组对象中具有相同键的元素。然后,使用reduce
函数
将它们合并成一个单独的数组对象。
下面是示例代码:
type Item = {
id: number;
name: string;
const array1: Item[] = [
{ id: 1, name: "Item 1" },
{ id: 2, name: "Item 2" },
{ id: 3, name: "Item 3" },
const array2: Item[] = [
{ id: 2, name: "Updated Item 2" },
{ id: 4, name: "Item 4" },
{ id: 5, name: "Item 5" },
const mergedArray = [...array1, ...array2].reduce((acc, cur) => {
const index = acc.findIndex((item) => item.id === cur.id);
if (index !== -1) {
acc[index] = cur;
} else {
acc.push(cur);
return acc;
}, []);
console.log(mergedArray);
上面的代码将数组1和数组2合并成一个新的数组,然后使用reduce函数将它们合并并返回合并后的数组。最终输出的mergedArray将是合并后的数组对象,包含了所有元素。在reduce函数中,我们首先使用findIndex方法来查找是否有相同键的元素。如果找到了,我们使用更新后的值替换该元素;否则,我们将新的元素添加到结果数组中。
可以看到,在数组2中id为2的元素已更新,而其他的元素则全部添加到了合并后的数组中。