ES6 中引入了 Set 数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 中的成员可以是任意类型的值,包括基本类型和引用类型。Set 提供了一系列的方法来进行集合操作,本文将详细介绍如何使用 Set 进行集合操作。
创建 Set
可以使用 new Set()
来创建一个空的 Set,也可以在创建时传入一个数组,来初始化 Set。例如:
let set1 = new Set(); // 创建一个空的 Set let set2 = new Set([1, 2, 3]); // 创建一个包含 1、2、3 的 Set
Set 的基本操作
添加元素
可以使用 add()
方法向 Set 中添加元素。如果添加的元素已经存在于 Set 中,那么 Set 不会添加这个元素。例如:
let set = new Set(); set.add(1); set.add(2).add(3); set.add(1); // Set 中已经存在 1,不会添加这个元素 console.log(set); // Set(3) {1, 2, 3}
删除元素
可以使用 delete()
方法删除 Set 中的元素。如果要删除的元素不存在于 Set 中,那么 Set 不会进行任何操作。例如:
let set = new Set([1, 2, 3]); set.delete(2); console.log(set); // Set(2) {1, 3} set.delete(4); // Set 中不存在 4,不会进行任何操作 console.log(set); // Set(2) {1, 3}
判断元素是否存在
可以使用 has()
方法来判断 Set 中是否存在某个元素。例如:
let set = new Set([1, 2, 3]); console.log(set.has(2)); // true console.log(set.has(4)); // false
清空 Set
可以使用 clear()
方法来清空 Set 中的所有元素。例如:
let set = new Set([1, 2, 3]); set.clear(); console.log(set); // Set(0) {}
获取 Set 的大小
可以使用 size
属性来获取 Set 中元素的个数。例如:
let set = new Set([1, 2, 3]); console.log(set.size); // 3
Set 的集合操作
Set 提供了一系列的方法来进行集合操作,包括并集、交集、差集等。
并集
可以使用 union()
方法来获取两个 Set 的并集。例如:
let set1 = new Set([1, 2, 3]); let set2 = new Set([2, 3, 4]); let unionSet = new Set([...set1, ...set2]); console.log(unionSet); // Set(4) {1, 2, 3, 4}
交集
可以使用 intersection()
方法来获取两个 Set 的交集。例如:
let set1 = new Set([1, 2, 3]); let set2 = new Set([2, 3, 4]); let intersectionSet = new Set([...set1].filter(x => set2.has(x))); console.log(intersectionSet); // Set(2) {2, 3}
差集
可以使用 difference()
方法来获取两个 Set 的差集。例如:
let set1 = new Set([1, 2, 3]); let set2 = new Set([2, 3, 4]); let differenceSet = new Set([...set1].filter(x => !set2.has(x))); console.log(differenceSet); // Set(1) {1}
总结
本文介绍了如何使用 ES6 中的 Set 进行集合操作,包括创建 Set、添加元素、删除元素、判断元素是否存在、清空 Set、获取 Set 的大小以及集合操作。Set 提供了一系列的方法来方便我们进行集合操作,可以大大提高我们的开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65506c527d4982a6eb943c8b