📜  查找两个未排序数组的并集和交集(1)

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

查找两个未排序数组的并集和交集

在开发过程中,经常需要对数组进行查找操作。其中,查找两个未排序数组的并集和交集是最为基础的操作之一。

什么是并集和交集?
  • 并集指的是两个集合中的所有元素合并起来的集合,其中不含重复元素。数组的并集即为两个数组中所有元素合并起来的数组,其中不含重复元素。
  • 交集指的是两个集合中都存在的元素的集合。数组的交集即为两个数组中都存在的元素的数组。
实现方式
查找并集
  • 方法一:使用 ES6 的 Set 对象
const array1 = [1, 2, 3, 4];
const array2 = [2, 4, 6, 8];

const set1 = new Set(array1);
const set2 = new Set(array2);

const union = [...new Set([...set1, ...set2])];

console.log(union); // [1, 2, 3, 4, 6, 8]
  • 方法二:遍历数组
const array1 = [1, 2, 3, 4];
const array2 = [2, 4, 6, 8];

const union = [...array1];

array2.forEach((item) => {
  if (!union.includes(item)) {
    union.push(item);
  }
});

console.log(union); // [1, 2, 3, 4, 6, 8]
查找交集
  • 方法一:使用 ES6 的 Set 对象
const array1 = [1, 2, 3, 4];
const array2 = [2, 4, 6, 8];

const set1 = new Set(array1);
const set2 = new Set(array2);

const intersection = [...set1].filter((item) => set2.has(item));

console.log(intersection); // [2, 4]
  • 方法二:遍历数组
const array1 = [1, 2, 3, 4];
const array2 = [2, 4, 6, 8];

const intersection = [];

array1.forEach((item) => {
  if (array2.includes(item)) {
    intersection.push(item);
  }
});

console.log(intersection); // [2, 4]
总结

以上是查找两个未排序数组的并集和交集的两种实现方式。在实际开发中,我们可以根据具体情况选择适合自己的方式实现。