跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

javascript的Set是什么_如何存储唯一值?

Set 是 JavaScript 中存储唯一值的内置对象,自动去重且对 NaN 和 +0/-0 有特殊处理;支持 add、has、delete 等操作,可与数组互转实现快速去重,遍历方式包括 for...of、forEach 及 keys/values/entries。 Set 是 JavaScript 中用于存储唯一值的内置对象,它自动确保所有元素互不重复,无论原始数据类型是基本类型还是引用类型(对引用类型按内存地址判断)。 Set 的核心特性:自动去重 Set 在添加值时会用严格相等(
===
)比较,但对
NaN
有特殊处理——它认为多个
NaN
是相等的,因此只保留一个;而
+0
和
-0
在 Set 中被视为相同值(符合 IEEE 754 规范)。 字符串、数字、布尔值等基本类型:值相同即视为重复 对象、数组、函数等引用类型:只有同一引用(指向同一内存地址)才算重复
new Set([1, 1, 2, '2', '2'])
→
{1, 2, '2'}
(数字 1 和字符串 '1' 不冲突) 常用操作方法 Set 提供简洁的 API 管理唯一值:
add(value)
:添加一个值,返回 Set 本身(可链式调用)
has(value)
:检查是否包含某值,返回布尔值
delete(value)
:删除指定值,返回是否删除成功
clear()
:清空所有值
size
:获取当前元素个数(不是方法,是属性) 与数组互转:快速实现去重 利用 Set 的唯一性,可以一行代码去除数组重复项: Eclipse导入Android或其他的JAVA项目的正确方法 WORD版 本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看 下载 立即学习 “ Java免费学习笔记(深入) ”; 数组 → Set → 数组:
[...new Set([1, 2, 2, 3])]
或
Array.from(new Set(arr))
Set → 数组:
Array.from(mySet)
或
[...mySet]
注意:Set 本身不支持索引访问(如
set[0]
),需转为数组再操作 遍历 Set 的几种方式 Set 是 可迭代对象 ,支持多种遍历语法:
for...of
:按插入顺序遍历值(
for (const v of mySet) { ... }
)
forEach()
:类似数组,回调参数为
(value, value, set)
(前两个参数相同)
keys()
、
values()
、
entries()
:都可用,但
keys()
和
values()
行为一致(因为 Set 只有值,没有键)

相关文章