如何使用ES6的Set实现数组并集和交集运算?

在ES6中,新增了一种数据结构Set,可以用来存储任意类型的唯一值。Set提供了丰富的方法,可以方便地进行数组并集和交集的运算。

1. 数组并集

数组并集指的是将两个数组中的所有元素合并成一个新的数组,保留元素的唯一性。下面是一个实现数组并集的示例代码:

function union(arr1, arr2) {
  const set = new Set(arr1);
  arr2.forEach(item => set.add(item));
  return Array.from(set);
}

const arr1 = [1, 2, 3];
const arr2 = [2, 3, 4];
const unionArr = union(arr1, arr2);
console.log(unionArr); // [1, 2, 3, 4]

以上代码中,我们首先创建了一个空的Set对象,然后利用Set的add方法将arr1中的元素依次添加到Set中,再使用forEach方法将arr2中的元素添加到Set中。最后,通过Array.from方法将Set转换为数组,即得到了数组并集。

2. 数组交集

数组交集指的是两个数组中共同存在的元素组成的新数组。下面是一个实现数组交集的示例代码:

function intersection(arr1, arr2) {
  const set1 = new Set(arr1);
  const set2 = new Set(arr2);
  return Array.from(new Set([...set1].filter(item => set2.has(item))));
}

const arr1 = [1, 2, 3];
const arr2 = [2, 3, 4];
const intersectionArr = intersection(arr1, arr2);
console.log(intersectionArr); // [2, 3]

以上代码中,我们分别创建了两个Set对象set1和set2,分别用来存储arr1和arr2的元素。然后利用数组的filter方法对set1中的元素进行过滤,只保留在set2中存在的元素。最后,通过Array.from方法将Set转换为数组,即得到了数组交集。

通过以上的示例代码,我们可以看到,使用ES6的Set数据结构可以轻松实现数组的并集和交集运算。Set提供了方便的方法和操作符,使得代码简洁易懂,并且保证了元素的唯一性。希望本文对于理解和应用Set的相关操作有所帮助。

猿教程
请先登录后发表评论
  • 最新评论
  • 总共0条评论