n
elements for which the provided function returns a truthy value.for
loop to execute the provided matcher
for each element of arr
.Array.prototype.unshift()
to prepend elements to the results array and return them if its length
is equal to 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([1, 2, 4, 6], n => n % 2 === 0, 2); // [4, 6] findLastN([1, 2, 4, 6], n => n % 2 === 0, 5); // [2, 4, 6]
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️