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