find方法返回数组中第一个满足条件的元素,否则返回undefined;它不修改原数组且找到即停止遍历;回调函数接收element、index、array三个参数,可选thisArg指定this值。

find 方法用于查找数组中第一个满足指定条件的元素,找到即返回该元素,找不到则返回 undefined。它不会修改原数组,也不会遍历整个数组(找到就停止)。
基本语法和参数
调用方式:array.find(callback(element[, index[, array]])[, thisArg])
-
callback:必需,每次遍历执行的函数,返回布尔值。接收三个参数:
element(当前元素)、index(索引)、array(原数组) -
thisArg:可选,指定回调函数中
this的值
常见使用场景
查找数字、对象、字符串等类型中符合条件的第一个项:
- 找第一个偶数:
[1, 3, 4, 6, 8].find(x => x % 2 === 0)→4 - 找第一个年龄大于 25 的用户:
users.find(u => u.age > 25) - 找第一个包含特定字符的字符串:
['abc', 'def', 'xyz'].find(s => s.includes('e'))→'def'
注意返回值和边界情况
find 总是返回匹配的元素本身,不是索引或布尔值;若无匹配项,返回 undefined,不是 null 或 false:
- 空数组调用
find→undefined - 条件始终为假 →
undefined - 需区分
undefined和有效值(如0、false、''),建议用=== undefined判断是否找到
与 findIndex、filter 的区别
避免混淆这几个方法:
- find 返回元素值;findIndex 返回匹配项的索引;filter 返回所有匹配项组成的新数组
- 如果只需要第一个匹配项,用 find 更高效(短路);需要多个结果才用 filter
- 如果后续还需操作索引(如修改原数组),可先用 findIndex 获取位置

















