JavaScript Set 是用于存储唯一值的内置对象,自动去重、支持高效存在性判断与集合运算,不按索引排序,可通过 add/has/delete/clear 等方法操作,支持 for…of 和 forEach 遍历及转数组等转换。

JavaScript Set 是一个内置对象,用来存储唯一值的集合,无论值的类型是原始类型还是对象,重复添加的值都会被自动忽略。 它不按索引排序,也不支持通过下标访问元素,但能高效地判断某个值是否存在、去重、求交集或差集等。
创建和初始化 Set
用 new Set() 创建空集合,也可以传入一个可迭代对象(如数组)来初始化:
const set1 = new Set(); —— 创建空 Set const set2 = new Set([1, 2, 2, 3, 3]); —— 自动去重,结果为 {1, 2, 3} const set3 = new Set("hello"); —— 字符串会被拆成单字符,结果为 {"h", "e", "l", "o"}(注意:只有一个 “l”)
常用操作方法
Set 提供了清晰的方法管理数据:
add(value):添加一个值,返回 Set 本身(可链式调用) has(value):返回布尔值,判断是否包含某值(比数组 includes 更快,尤其大数据量) delete(value):删除指定值,返回是否删除成功 clear():清空所有元素 size:获取当前元素个数(不是方法,是属性)
例如:
const colors = new Set();
colors.add("red").add("blue").add("red"); // 只存两个值
console.log(colors.size); // 2
console.log(colors.has("green")); // false
遍历和转换
Set 支持多种遍历方式,也容易转成其他数据结构:
立即学习“Java免费学习笔记(深入)”;
用 for...of 循环:for (const color of colors) { console.log(color); } 用 forEach:colors.forEach(c => console.log(c)); 转为数组:[...colors] 或 Array.from(colors) 转为字符串(需手动处理):Array.from(colors).join(", ")
配合数组去重和集合运算
Set 最常见的用途之一就是快速去重:
数组去重:[...new Set([1, 2, 2, 3])] → [1, 2, 3] 求并集:new Set([...setA, ...setB]) 求交集:new Set([...setA].filter(x => setB.has(x))) 求差集(A 减 B):new Set([...setA].filter(x => !setB.has(x)))
注意:Set 的相等判断使用 SameValueZero 算法,所以 NaN === NaN 为 true,0 和 -0 被视为相同。
以上就是javascript Set是什么_怎样用它存储唯一值的集合?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1543635.html
微信扫一扫
支付宝扫一扫