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

Beginner

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

Введение

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

  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, чтобы улучшить свои навыки.