JavaScript数组查找方法需按需求选择:includes()用于布尔判断,indexOf()/lastIndexOf()返回索引,find()/findIndex()支持回调找首个匹配项,filter()返回所有匹配元素。
JavaScript 中查找数组元素,方法不少,关键看你要什么结果:是找第一个匹配项、所有匹配项、还是只要判断存不存在?不同场景适合不同方法,选错了可能多写代码还出错。
最简单直接的布尔判断,适合“有没有”这种需求。它不关心位置、不返回元素,只告诉你 true 或 false。
[NaN].includes(NaN) 返回 true,而 indexOf 不行)===)比较[{a:1}].includes({a:1}) 是 false返回第一个/最后一个匹配项的索引,没找到返回 -1。适合需要知道位置的场景,比如后续要 splice 或修改该位置元素。
indexOf 从头开始找,lastIndexOf 从末尾开始找支持传入回调函数,能做复杂判断(比如对象属性匹配、范围筛选),是日常开发中最常用的一对。
立即学习“Java免费学习笔记(深入)”;
find() 返回第一个满足条件的元素值;没找到返回 undefined
findIndex() 返回对应索引;没找到返回 -1
find 也返回 undefined,别忘了判空处理当你需要全部符合条件的元素(不止一个),就用 filter。它返回一个新数组,原数组不变。
[0]
find 略低(但语义更清晰)some() 或 every() 可快速做存在性或全量判断不复杂但容易忽略细节,用对方法才能少踩坑、少写冗余逻辑。