简介
在本实验中,我们将探讨如何使用 JavaScript 找到数组中某个元素的最后一个匹配索引。我们将学习如何使用 Array.prototype.map()
和 Array.prototype.filter()
方法过滤掉那些提供的函数返回假值的元素,并使用 Array.prototype.pop()
获取过滤后数组中的最后一个元素。完成本实验后,你将能够使用 JavaScript 高效地找到数组中某个元素的最后一个匹配索引。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将探讨如何使用 JavaScript 找到数组中某个元素的最后一个匹配索引。我们将学习如何使用 Array.prototype.map()
和 Array.prototype.filter()
方法过滤掉那些提供的函数返回假值的元素,并使用 Array.prototype.pop()
获取过滤后数组中的最后一个元素。完成本实验后,你将能够使用 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 中练习更多实验来提升你的技能。