JavaScript - 数组 findLastIndex() 方法
在 JavaScript 中,Array.findLastIndex() 方法用于逆序迭代数组元素,并返回满足指定函数的最后一个元素的索引。如果指定的函数中没有元素满足条件,则返回结果"-1"。
此方法不会对空数组元素执行该函数。此外,此方法不会修改原始数组;而是将结果返回到一个新的数组中。
findLastIndex() 方法属于 ES2023 特性,所有现代浏览器(例如 Chrome、Edge、Firefox、Safari 和 Opera)都支持该方法。
语法
以下是 JavaScript Array.findLastIndex() 方法的语法 -
findLastIndex(callbackFn, thisArg)
参数
此方法接受两个参数。具体描述如下 -
-
callbackFn - 一个针对数组中每个元素调用的函数。此函数调用时会传入三个参数:
- element(可选)- 数组中当前正在处理的元素。
- index(可选)- 数组中当前正在处理的元素的索引。
- array(可选)- 调用 findLastIndex() 的数组。
- thisArg(可选)- 执行回调时用作 this 的值。
返回值
此方法返回数组中满足所提供测试函数的最后一个元素的索引。如果没有元素满足提供的函数,则返回 -1。
示例
示例 1
在下面的示例中,我们使用 JavaScript Array.findLastIndex() 方法查找数组中偶数的最后一个索引 -
<html>
<body>
<script>
const numbers = [1, 2, 3, 4, 5, 6];
const lastIndex = numbers.findLastIndex((num) => num % 2 === 0);
document.write(lastIndex);
</script>
</body>
</html>
输出
由于 '6' 是数组中的最后一个偶数,因此将返回其索引号 '5'。
5
示例 2
在此示例中,我们查找以特定字母("a")开头的字符串的最后一个索引 -
<html>
<body>
<script>
const words = ['apple', 'banana', 'avocado', 'orange', 'grape'];
const lastIndex = words.findLastIndex((word) => word.startsWith('a'));
document.write(lastIndex);
</script>
</body>
</html>
输出
上述程序返回索引"2",因为"avocado"是满足条件的最后一个单词。
2
示例 3
这里,我们查找大于 10 的元素的最后一个索引 -
<html>
<body>
<script>
const numbers = [5, 8, 12, 15, 20];
const lastIndex = numbers.findLastIndex((num) => num > 10);
document.write(lastIndex);
</script>
</body>
</html>
输出
返回索引"4",因为数组中最后一个大于 10 的数字是"20"。
4
示例 4
在下面的示例中,我们查找"偶数"的最后一个索引 -
<html>
<body>
<script>
const numbers = [1, 3, 5, 7, 9];
const lastIndex = numbers.findLastIndex((num) => num % 2 === 0);
document.write(lastIndex);
</script>
</body>
</html>
输出
返回结果为"-1",因为数组中没有元素满足该函数。
-1

