javascript 的 set 是自动去重的唯一值集合,支持字符串、数字、对象等类型(对象按引用判断),提供 add、has、delete 等方法及 for...of、扩展运算符等多种遍历方式。

JavaScript 中的 Set 是专门用来存储唯一值的集合对象,它会自动去重,无论原始数据是字符串、数字、对象还是其他类型(注意:对象按引用判断是否重复),都能保证内部每个值只出现一次。
创建和初始化 Set
使用 new Set() 创建空集合,也可以传入一个可迭代对象(如数组)进行初始化:
-
const set1 = new Set();—— 创建空 Set -
const set2 = new Set([1, 2, 2, 3, "a", "a"]);—— 自动去重,结果为{1, 2, 3, "a"} -
const set3 = new Set("hello");—— 字符串会被拆成字符,结果为{"h", "e", "l", "o"}(注意:"l"只保留一个)
常用操作方法
Set 提供了简洁的方法来增删查遍历:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
add(value):添加值,返回 Set 本身(支持链式调用) -
has(value):检查是否存在该值,返回布尔值(比Array.includes在大数据量时更高效) -
delete(value):删除指定值,返回是否删除成功 -
clear():清空所有值 -
size:获取当前元素个数(不是方法,是属性)
遍历 Set 的几种方式
Set 是可迭代对象,支持多种遍历语法:
-
for...of:最常用,直接遍历值 -
set.forEach(callback):类似数组 forEach,回调接收(value, value, set)(前两个参数相同) -
[...set]:转为数组,方便使用数组方法(如map、filter) -
Array.from(set):等价于扩展运算符,也用于转数组
注意事项和常见误区
使用 Set 时需留意几个关键点:
- NaN 等于 NaN:Set 中只会保留一个
NaN,这是符合规范的特殊行为 - 对象去重看引用:两个内容相同的对象
{a:1}和{a:1}被视为不同元素,因为内存地址不同 - Set 不支持索引访问:不能用
set[0],必须转数组或用迭代方式取值 - 与 Array 互转很常见:去重数组可写成
[...new Set(arr)],简洁高效
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










