Найти индекс последнего совпадения

JavaScriptJavaScriptBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы изучим концепцию поиска индекса последнего совпадения элемента в массиве с использованием 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, чтобы улучшить свои навыки.