JavaScript 中相当于 C# HashSet 的是 Set 数据结构。Set 是 ES6 中引入的一种新的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。
在 JavaScript 中,Set 是一种无序的集合,它可以存储各种类型的值,并且保证每个值的唯一性。Set 提供了一系列的方法来操作集合,比如添加元素、删除元素、判断元素是否存在等。### Set 的基本用法我们先来看一下 Set 的基本用法。可以使用构造函数来创建一个 Set 对象,也可以通过直接使用 Set 字面量来创建一个 Set 对象。javascript// 使用构造函数创建 Set 对象let set1 = new Set();// 使用 Set 字面量创建 Set 对象let set2 = new Set([1, 2, 3]);console.log(set1); // Set {}console.log(set2); // Set {1, 2, 3}### Set 的操作方法Set 提供了一系列的方法来操作集合。- 添加元素:使用 add() 方法可以向 Set 中添加元素。
javascriptlet set = new Set();set.add(1);set.add(2);set.add(3);console.log(set); // Set {1, 2, 3}- 删除元素:使用 delete() 方法可以删除 Set 中的元素。
javascriptlet set = new Set([1, 2, 3]);set.delete(2);console.log(set); // Set {1, 3}- 判断元素是否存在:使用 has() 方法可以判断 Set 中是否存在某个元素。
javascriptlet set = new Set([1, 2, 3]);console.log(set.has(2)); // trueconsole.log(set.has(4)); // false### Set 的特性Set 的一个特性是它的成员值是唯一的,没有重复的值。这意味着当我们向 Set 中添加重复的值时,Set 会自动去重。
javascriptlet set = new Set();set.add(1);set.add(2);set.add(3);set.add(1); // 重复的值,不会被添加到 Set 中console.log(set); // Set {1, 2, 3}另一个特性是 Set 中的元素是无序的。这意味着当我们遍历 Set 时,元素的顺序是不确定的。
javascriptlet set = new Set([1, 2, 3]);for (let item of set) { console.log(item); // 1, 2, 3,顺序不确定}### Set 的应用场景Set 的唯一性特性使得它在处理数据集合时非常有用。比如,我们可以使用 Set 来去除数组中的重复元素。
javascriptlet arr = [1, 2, 3, 1, 2, 3];let uniqueArr = [...new Set(arr)];console.log(uniqueArr); // [1, 2, 3]Set 还可以用来判断两个数组是否有重复元素。
javascriptlet arr1 = [1, 2, 3];let arr2 = [3, 4, 5];let set1 = new Set(arr1);let set2 = new Set(arr2);for (let item of set1) { if (set2.has(item)) { console.log(item); // 3 }}### Set 是 JavaScript 中相当于 C# HashSet 的数据结构,它提供了一系列的方法来操作集合,比如添加元素、删除元素、判断元素是否存在等。Set 的成员值是唯一的,没有重复的值,而且元素是无序的。Set 在处理数据集合时非常有用,比如去除数组中的重复元素、判断两个数组是否有重复元素等。