Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
为数组中的每个元素执行的函数。它应该返回一个真值来表示已经找到了匹配的元素。该函数被调用时将传入以下参数:
element数组中当前正在处理的元素。
index正在处理的元素在数组中的索引。
array调用了 find() 的数组本身。
thisArg 可选执行 callbackFn 时用作 this 的值。参见迭代方法。
数组中第一个满足所提供测试函数的元素的值,否则返回 undefined。
find() 方法是一个迭代方法。它按索引升序顺序为数组中的每个元素调用提供的 callbackFn 函数,直到 callbackFn 返回一个真值。然后 find() 返回该元素并停止迭代数组。如果 callbackFn 从未返回真值,则 find() 返回 undefined。
callbackFn 被调用来处理数组的每一个索引,而不仅仅是那些有值的索引。在稀疏数组中,未赋值的空槽与 undefined 表现相同。
find() 不会改变被调用的数组,但是提供给 callbackFn 的函数可能会改变它。但需要注意的是,在第一次调用 callbackFn 之前,数组的长度会被保存。因此:
警告:上述类型的并发修改经常导致难以理解的代码,通常应避免(特殊情况除外)。
find() 方法是通用的。它只期望 this 值具有 length 属性和整数键属性。
下面的例子展示了如何从数组中寻找素数(如果找不到素数则返回 undefined):
备注:isPrime() 实现仅供演示。在实际应用中,为了避免重复计算,会使用大量记忆化的算法,例如埃拉托斯特尼筛法。
在稀疏数组中,空槽会被访问的,并被视为 undefined。
find() 方法读取 this 的 length 属性,然后访问每个整数索引。
| ECMAScript® 2027 Language Specification # sec-array.prototype.find |
启用 JavaScript 以查看此浏览器兼容性表。