在ES6中,新增了一种数据结构Set,可以用来存储任意类型的唯一值。Set提供了丰富的方法,可以方便地进行数组并集和交集的运算。
数组并集指的是将两个数组中的所有元素合并成一个新的数组,保留元素的唯一性。下面是一个实现数组并集的示例代码:
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转换为数组,即得到了数组并集。
数组交集指的是两个数组中共同存在的元素组成的新数组。下面是一个实现数组交集的示例代码:
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的相关操作有所帮助。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com