find 返回第一个匹配元素值,未找到返回 undefined;findindex 返回其索引,未找到返回 -1;二者均遍历到首个匹配即停止,性能高效。

find 和 findIndex 是 JavaScript 数组中两个轻量但高效的查找方法,专为“找第一个匹配项”设计,不遍历整个数组,找到即停,性能友好。
find:直接拿到匹配的元素本身
它接收一个回调函数,遍历数组,返回第一个使回调返回 true 的元素值;没找到则返回 undefined。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 回调函数参数依次是:当前元素、当前索引、原数组(常用前两个)
- 适合场景:你关心的是“这个对象/值长什么样”,比如找某个 id 对应的用户、价格低于 100 的商品
- 示例:
const users = [{id: 1, name: '张三'}, {id: 2, name: '李四'}, {id: 3, name: '王五'}];<br> const target = users.find(u => u.id === 2); // {id: 2, name: '李四'}
findIndex:拿到匹配元素的下标位置
和 find 行为一致,但返回的是第一个匹配项的索引(数字),没找到返回 -1。
- 适合场景:你需要后续操作该位置(比如 splice 删除、修改原数组某一项)
- 注意:不能直接用索引访问就完事——得先判断是否为 -1,避免读取 undefined 或越界
- 示例:
const prices = [89, 120, 95, 200];<br> const cheapIdx = prices.findIndex(p => p if (cheapIdx !== -1) prices[cheapIdx] = 79; // 把第一个便宜的改成 79
常见误区和提醒
- 它们只返回第一个匹配项,不是全部。要找所有,请用 filter
- 回调里 return 必须是布尔值(或能转为布尔的值)。写错成
u.id === 2 && console.log(u)会导致返回 undefined(因为 console.log 返回 undefined) - 空数组调用会直接返回 undefined(find)或 -1(findIndex),不会报错
- 不改变原数组,纯查找,安全无副作用
对比传统 for 循环
不用手动写 i=0; i
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










