📜  两个数组的并集 javascript (1)

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

两个数组的并集 JavaScript

在 JavaScript 中,合并两个数组并去除重复元素,我们通常使用“并集”这个术语。构造两个数组并计算它们的并集是在 JavaScript 中常见的问题之一。

使用 Set 和 Spread Operator 进行并集计算

我们可以使用 ES6 中的 Set 对象来计算两个数组的并集。Set 对象是由一组不同的值构成的集合,并且每个值只能出现一次。因此,我们可以利用 Set 对象去除两个数组的重复元素。

代码片段:

const arr1 = [1, 2, 3, 4, 5];
const arr2 = [3, 4, 5, 6, 7];

const set = new Set([...arr1, ...arr2]);
const union = Array.from(set);

这里,我们使用了扩展运算符(Spread Operator)来展开两个数组,然后在创建一个 Set 对象时使用展开数组。最终,我们将 Set 对象转换回数组,并将其存储在 union 变量中。

这个方法简洁明了,但如果你需要遍历大量的数组,则它可能会变得非常低效。在这种情况下,你可以使用标准的 for 循环或 forEach 循环。

使用 Array.prototype.concat() 和 Array.prototype.filter() 方法进行并集计算

除了上文介绍的方法,我们还可以使用 Array.prototype.concat() 和 Array.prototype.filter() 方法来计算两个数组的并集。

代码片段:

const arr1 = [1, 2, 3, 4, 5];
const arr2 = [3, 4, 5, 6, 7];

const union = arr1.concat(arr2).filter((item, index, arr) => {
    return arr.indexOf(item) === index;
});

此方法利用 Array.prototype.concat() 方法将两个数组连接起来成为一个数组,并使用 Array.prototype.filter() 方法过滤出现在连接后数组中的唯一项。这里的筛选逻辑就是,对于数组中每个元素,只保留第一次出现的元素,并忽略后续的重复出现。

结论

在 JavaScript 中,计算两个数组的并集是一个常见的任务。当我们需要去重合并两个数组时,可以使用 Set 和 Spread Operator,也可以使用 Array.prototype.concat() 和 Array.prototype.filter() 方法。这些方法都很有效,具体应根据具体情况选择使用。