Введение
В этом практическом занятии мы изучим концепцию нахождения последних n элементов, удовлетворяющих заданному условию, в массиве. Мы узнаем, как использовать цикл for для перебора массива и выполнения заданной функции для каждого элемента. Также мы узнаем, как использовать метод Array.prototype.unshift() для добавления соответствующих элементов в начало результирующего массива и возврата его, когда достигнута требуемая длина.
Инструкции по нахождению последних 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]
Резюме
Поздравляем! Вы завершили практическое занятие "Найти последние N совпадений". Вы можете выполнить больше практических заданий в LabEx, чтобы улучшить свои навыки.