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 的唯一性,可以一行代码去除数组重复项:
立即学习“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 只有值,没有键)
以上就是javascript的Set是什么_如何存储唯一值?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1544421.html
微信扫一扫
支付宝扫一扫