JavaScript - 数组 findIndex() 方法
JavaScript Array.findIndex() 方法对每个数组元素执行回调函数,并返回数组中第一个满足回调函数指定条件的元素的索引位置(值)。
如果数组元素不满足指定条件,此方法返回 -1。对于空数组元素,它不执行此函数。此方法不会覆盖原始数组。
find() 和 findIndex() 方法的区别在于:find() 方法返回第一个满足测试函数的"元素"(而不是其索引)。
语法
以下是 JavaScript 数组 findIndex() 方法的语法 -
array.findIndex(callbackFn (element, index, array), thisArg);
参数
此方法接受两个参数。具体描述如下 -
-
callbackfn - 这是一个回调函数,数组中的每个元素都会被调用一次。它还需要三个参数:
- element − 数组中当前正在处理的元素。
- index − 当前正在处理的元素的索引。
- array − 当前元素的数组。
- thisArg(可选)− 指定传递给函数的值,用作其 this 值。
返回值
此方法返回数组中满足所提供测试函数的第一个元素的索引;否则,如果未找到任何元素,则返回 -1。
示例
示例 1
在下面的示例中,我们使用 JavaScript 数组 findIndex() 方法查找指定数组中第一个等于 Dinosaur 的元素的索引 -
<html>
<body>
<script>
const aniamls = ["Lion", "Dinosaur", "Tiger", "Elephant", "Dinosaur"];
const result = aniamls.findIndex(element => element === "Dinosaur");
document.write(result);
</script>
</body>
</html>
输出
1
示例 2
这里,我们查找数组中第一个长度大于 5 的元素的索引。
<html>
<body>
<script>
const animals = ["Lion", "Cheetah", "Tiger", "Elephant", "Dinosaur"];
const result = animals.findIndex(func => func.length > 5);
document.write(result);
</script>
</body>
</html>
输出
上述程序将返回 cheetah 的索引值,即 1。
1
示例 3
如果数组元素不满足特定条件,此方法将返回 -1 作为输出 -
<html>
<body>
<script>
const animals = ["Lion", "Cheetah", "Tiger", "Elephant", "Dinosaur"];
const result = animals.findIndex(func => func.length > 10);
document.write(result);
</script>
</body>
</html>
我们可以看到,数组中没有长度大于 10 的元素。
输出
-1

