简介
在本实验中,我们将探讨如何使用 JavaScript 找到数组中某个元素的最后一个匹配索引。我们将学习如何使用 Array.prototype.map() 和 Array.prototype.filter() 方法过滤掉那些提供的函数返回假值的元素,并使用 Array.prototype.pop() 获取过滤后数组中的最后一个元素。完成本实验后,你将能够使用 JavaScript 高效地找到数组中某个元素的最后一个匹配索引。
如何使用 JavaScript 找到数组中最后一个匹配元素的索引
要在 JavaScript 数组中找到与特定条件匹配的最后一个元素的索引,请使用 findLastIndex 函数。以下是使用方法:
const findLastIndex = (arr, fn) =>
(arr
.map((val, i) => [i, val])
.filter(([i, val]) => fn(val, i, arr))
.pop() || [-1])[0];
findLastIndex 函数接受两个参数:要搜索的数组和用于测试每个元素的函数。其工作原理如下:
- 使用
Array.prototype.map()创建一个新的[索引, 值]对数组。 - 使用
Array.prototype.filter()从数组中移除不匹配fn函数提供的条件的元素。 - 使用
Array.prototype.pop()获取过滤后数组中的最后一个元素。 - 如果过滤后的数组为空,则返回
-1。
以下是使用 findLastIndex 的示例:
findLastIndex([1, 2, 3, 4], (n) => n % 2 === 1); // 2(值 3 的索引)
findLastIndex([1, 2, 3, 4], (n) => n === 5); // -1(未找到时的默认值)
要开始练习编码,请打开终端/SSH 并输入 node。
总结
恭喜你!你已经完成了“查找最后一个匹配索引”实验。你可以在 LabEx 中练习更多实验来提升你的技能。