Найти последние N совпадений

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

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

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

Введение

В этом практическом занятии мы изучим концепцию нахождения последних n элементов, удовлетворяющих заданному условию, в массиве. Мы узнаем, как использовать цикл for для перебора массива и выполнения заданной функции для каждого элемента. Также мы узнаем, как использовать метод Array.prototype.unshift() для добавления соответствующих элементов в начало результирующего массива и возврата его, когда достигнута требуемая длина.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic 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/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation") subgraph Lab Skills javascript/variables -.-> lab-28307{{"Найти последние N совпадений"}} javascript/data_types -.-> lab-28307{{"Найти последние N совпадений"}} javascript/arith_ops -.-> lab-28307{{"Найти последние N совпадений"}} javascript/comp_ops -.-> lab-28307{{"Найти последние N совпадений"}} javascript/cond_stmts -.-> lab-28307{{"Найти последние N совпадений"}} javascript/loops -.-> lab-28307{{"Найти последние N совпадений"}} javascript/array_methods -.-> lab-28307{{"Найти последние N совпадений"}} javascript/obj_manip -.-> lab-28307{{"Найти последние N совпадений"}} end

Инструкции по нахождению последних N совпадений

Для нахождения последних n элементов, соответствующих определенному условию, следуйте шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Используйте функцию findLastN, предоставленную ниже.
  3. Предоставьте массив arr и функцию matcher, которая возвращает истинное значение для элементов, которые вы хотите найти.
  4. По желанию вы также можете указать количество n совпадений, которые вы хотите вернуть (по умолчанию равно 1).
  5. Функция выполнит функцию matcher для каждого элемента arr с использованием цикла for, начиная с последнего элемента.
  6. Если элемент соответствует условию matcher, он будет добавлен в результирующий массив с использованием Array.prototype.unshift(), который добавляет элементы в начало массива.
  7. Когда длина результирующего массива равна n, функция вернет результат.
  8. Если совпадений нет или n больше количества совпадений, будет возвращен пустой массив.
const findLastN = (arr, matcher, n = 1) => {
  let res = [];
  for (let i = arr.length - 1; i >= 0; i--) {
    const el = arr[i];
    const match = matcher(el, i, arr);
    if (match) res.unshift(el);
    if (res.length === n) return res;
  }
  return res;
};

Ниже приведены примеры использования функции findLastN:

findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 2); // [4, 6]
findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 5); // [2, 4, 6]

Резюме

Поздравляем! Вы завершили практическое занятие "Найти последние N совпадений". Вы можете выполнить больше практических заданий в LabEx, чтобы улучшить свои навыки.