JavaScript 中相当于 C# HashSet 的是什么

作者:编程家 分类: js 时间:2025-06-25

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 中添加元素。

javascript

let set = new Set();

set.add(1);

set.add(2);

set.add(3);

console.log(set); // Set {1, 2, 3}

- 删除元素:使用 delete() 方法可以删除 Set 中的元素。

javascript

let set = new Set([1, 2, 3]);

set.delete(2);

console.log(set); // Set {1, 3}

- 判断元素是否存在:使用 has() 方法可以判断 Set 中是否存在某个元素。

javascript

let set = new Set([1, 2, 3]);

console.log(set.has(2)); // true

console.log(set.has(4)); // false

### Set 的特性

Set 的一个特性是它的成员值是唯一的,没有重复的值。这意味着当我们向 Set 中添加重复的值时,Set 会自动去重。

javascript

let 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 时,元素的顺序是不确定的。

javascript

let set = new Set([1, 2, 3]);

for (let item of set) {

console.log(item); // 1, 2, 3,顺序不确定

}

### Set 的应用场景

Set 的唯一性特性使得它在处理数据集合时非常有用。比如,我们可以使用 Set 来去除数组中的重复元素。

javascript

let arr = [1, 2, 3, 1, 2, 3];

let uniqueArr = [...new Set(arr)];

console.log(uniqueArr); // [1, 2, 3]

Set 还可以用来判断两个数组是否有重复元素。

javascript

let 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 在处理数据集合时非常有用,比如去除数组中的重复元素、判断两个数组是否有重复元素等。