Инструкции по нахождению последних N совпадений
Для нахождения последних n
элементов, соответствующих определенному условию, следуйте шагам:
- Откройте Терминал/SSH и введите
node
, чтобы начать практиковаться в написании кода.
- Используйте функцию
findLastN
, предоставленную ниже.
- Предоставьте массив
arr
и функцию matcher
, которая возвращает истинное значение для элементов, которые вы хотите найти.
- По желанию вы также можете указать количество
n
совпадений, которые вы хотите вернуть (по умолчанию равно 1).
- Функция выполнит функцию
matcher
для каждого элемента arr
с использованием цикла for
, начиная с последнего элемента.
- Если элемент соответствует условию
matcher
, он будет добавлен в результирующий массив с использованием Array.prototype.unshift()
, который добавляет элементы в начало массива.
- Когда длина результирующего массива равна
n
, функция вернет результат.
- Если совпадений нет или
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]