find()用于查找数组中第一个满足条件的元素并立即返回该元素,未找到则返回undefined;回调函数接收value、index、arr三个参数,具备短路特性,不修改原数组。

ES6 的 find() 方法专门用于查找数组中**第一个满足条件的元素**,找到就立刻返回该元素值,不再继续遍历。它不修改原数组,对空数组直接不执行回调函数。
find() 的基本用法
调用语法:arr.find(callback),其中 callback 是一个必须返回布尔值的函数。只要它对某个元素返回 true,find() 就立即返回那个元素本身。
- 回调函数接收三个参数:当前元素(value)、当前索引(index)、原数组(arr)
- 如果整个数组都没匹配上,返回 undefined
- 不会遍历完全部元素——具备“短路”特性,性能比
filter()更优
常见查找场景示例
查找数字:在 [1, 6, 3, 4, 5] 中找第一个偶数
用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。
查找对象:在用户列表中找 id 为 2 的用户
const target = users.find(u => u.id === 2); // 返回 {id: 2, name: 'Bob'}
按索引查找:找索引为 3 的元素(注意这不是常用做法,但语法支持)
const arr = ['a', 'b', 'c', 'd'];const item = arr.find((val, idx) => idx === 3); // 返回 'd'
需要注意的关键点
- 只返回第一个匹配项,即使后面还有也忽略
- 找不到时返回 undefined(不是
-1,那是findIndex()的行为) - 不能用于简单值查找(如
arr.find(5)),必须传函数 - 对稀疏数组或空位,会把空位当作
undefined传入回调,但不会跳过

















