includes() 方法最简洁,返回布尔值,支持 nan 检查,但不兼容旧浏览器;2. indexof() 通过返回索引检查存在性,使用严格相等,不支持 nan;3. find()/findindex() 支持复杂条件和对象比较,但性能较低;4. 对于对象需自定义比较函数;5. 第三方库如 lodash 提供增强兼容性与功能。

在 JavaScript 中,检查数组是否包含特定元素有多种方法,选择哪种取决于你的具体需求和目标浏览器兼容性。最常用的方法包括
includes()
indexOf()
find()
findIndex()

includes()方法
includes()

const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(3)); // true console.log(arr.includes(6)); // false
includes()
indexOf()

const arr = [1, 2, 3, 4, 5]; console.log(arr.indexOf(3) > -1); // true console.log(arr.indexOf(6) > -1); // false
indexOf()
===
find()
findIndex()
find()
undefined
findIndex()
const arr = [1, 2, 3, 4, 5]; console.log(arr.find(element => element === 3) !== undefined); // true console.log(arr.findIndex(element => element === 6) > -1); // false
find()
findIndex()
对于大型数组,
includes()
indexOf()
find()
findIndex()
includes()
indexOf()
find()
findIndex()
includes()
NaN
indexOf()
NaN === NaN
false
const arr = [1, 2, NaN, 4, 5]; console.log(arr.includes(NaN)); // true console.log(arr.indexOf(NaN) > -1); // false
如果数组包含对象,你需要使用
find()
findIndex()
const arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}];
const obj = {id: 2, name: 'Bob'};
console.log(arr.find(item => item.id === obj.id && item.name === obj.name) !== undefined); // trueLodash 和 Underscore.js 等第三方库提供了
_.includes()
_.contains()
以上就是js怎么检查数组是否包含某元素的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号