Array.find() 查找第一个匹配元素

最后更新:2026-09-09

Array.find() 查找第一个匹配元素

find 返回数组中第一个满足测试函数的元素;找不到返回 undefined。只需要判断存在性时用 some,需要下标时用 findIndex。

分类数组
ES 版本ES6(2015)

📝 语法

const 结果 = 数组.find((元素, 下标, 原数组) => 条件);

⚙️ 参数

callback对每个元素执行一次;返回真值时查找停止并返回该元素。

返回值:第一个满足条件的元素,或 undefined。

是否修改原值:否(返回新值)

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

{ id: 2, name: '李四', role: 'admin' }
undefined
💡 提示 find 返回的是原数组元素的引用——修改返回的对象会直接影响原数组。
⚠️ 警告 找到后立即停止遍历,大数据集里比 filter(...)[0] 高效得多。

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
Array.find() v45 v12 v25 v8 v32
所有现代浏览器均支持
更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Qfind 找不到时返回什么?
Aundefined。可以用结果 !== undefined 判断是否找到,但更语义化的是配合 some 先判断存在性。
Qfind 和 findIndex 用哪个?
A需要元素本身用 find;需要下标(如替换该位置的元素)用 findIndex。两者遍历行为完全一致。
Qfind 可以在对象数组里按多个条件查找吗?
A可以,回调里写复合条件:users.find(u => u.role === 'admin' && u.active)。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏