.has()方法可快速判断元素是否在set中,返回布尔值,底层用严格相等比较(nan特例处理),支持基础类型、对象引用判断,常用于去重后检查,不可用in、indexof或includes。

用 .has() 方法就能快速判断某个元素是否在 Set 中。
这个方法返回布尔值:存在是 true,不存在是 false。它底层使用严格相等(===)比较,但有个例外——NaN 会被正确识别为相等(即 new Set([NaN]).has(NaN) 返回 true),这点比数组的 includes() 更可靠。
常见用法包括:
-
检查基础类型值
const colors = new Set(['red', 'green', 'blue']); console.log(colors.has('green')); // true console.log(colors.has('yellow')); // false -
检查数字、布尔值、
null、undefined都没问题
Java JDK 25下载Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
const nums = new Set([1, 2, 3]); console.log(nums.has(2)); // true console.log(nums.has(0)); // false
-
对象按引用判断,不是按内容
const obj = { id: 1 }; const set = new Set([obj]); console.log(set.has(obj)); // true console.log(set.has({ id: 1 })); // false(新对象,引用不同) -
与数组去重后配合使用很常见
const arr = [1, 2, 2, 3, 4, 4]; const uniqueSet = new Set(arr); console.log(uniqueSet.has(2)); // true
注意:不要用 in 操作符或 indexOf,Set 不是类数组结构,也没有索引;也不要用 includes(),那是数组的方法,Set 上没有。
不复杂但容易忽略
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










