查找最后一个匹配索引

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探讨如何使用 JavaScript 找到数组中某个元素的最后一个匹配索引。我们将学习如何使用 Array.prototype.map()Array.prototype.filter() 方法过滤掉那些提供的函数返回假值的元素,并使用 Array.prototype.pop() 获取过滤后数组中的最后一个元素。完成本实验后,你将能够使用 JavaScript 高效地找到数组中某个元素的最后一个匹配索引。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28304{{"查找最后一个匹配索引"}} javascript/data_types -.-> lab-28304{{"查找最后一个匹配索引"}} javascript/arith_ops -.-> lab-28304{{"查找最后一个匹配索引"}} javascript/comp_ops -.-> lab-28304{{"查找最后一个匹配索引"}} javascript/higher_funcs -.-> lab-28304{{"查找最后一个匹配索引"}} end

如何使用 JavaScript 找到数组中最后一个匹配元素的索引

要在 JavaScript 数组中找到与特定条件匹配的最后一个元素的索引,请使用 findLastIndex 函数。以下是使用方法:

const findLastIndex = (arr, fn) =>
  (arr
    .map((val, i) => [i, val])
    .filter(([i, val]) => fn(val, i, arr))
    .pop() || [-1])[0];

findLastIndex 函数接受两个参数:要搜索的数组和用于测试每个元素的函数。其工作原理如下:

  1. 使用 Array.prototype.map() 创建一个新的 [索引, 值] 对数组。
  2. 使用 Array.prototype.filter() 从数组中移除不匹配 fn 函数提供的条件的元素。
  3. 使用 Array.prototype.pop() 获取过滤后数组中的最后一个元素。
  4. 如果过滤后的数组为空,则返回 -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 中练习更多实验来提升你的技能。