首页 > 解决方案 > 添加两个数组,其中两个数组的现有成员和重复成员替换重复的成员

问题描述

我处于这样一种情况,对我来说,将两个数组添加在一起并创建一个新数组至关重要,该数组没有两个数组的成员,它们与作为多个成员添加到最终数组中的成员相同,而只是一个,我只想让一个成员作为最终数组中两个数组中那些相同成员的代表,而不是将它们作为最终数组中的多个成员,我尝试了 concat() ,它确实做了我不想要的。伙计们,我该怎么做?像:

let arrayone = [2,4,6];
let arraytwo = [2,4,7];

我希望最终的数组是

finalarray = [2,4,6,7]

但是 concat() 给了我

final array [2,4,6,2,4,7]

这只是为了更清楚,我的数组的成员是对象。

标签: javascript

解决方案


在集合论中,这被称为“联合”。在 JavaScript 中有很多方法可以做到这一点。如果数组只包含原始值,您可以简单地Set从它们构建一个,然后传播回一个数组:

const firstArray = [1, 2, 3]
const secondArray = [3, 4, 5]
const union = [...new Set([...firstArray, ...secondArray])] // [1, 2, 3, 4, 5]

构造Set函数确保没有重复的值被添加到集合中。如果数组的值不是原始值(即对象或其他东西),则需要使用其他一些迭代方法来实现联合。这是导出两个对象数组并集的一个很好的例子


推荐阅读