findLastIndex
/**
* Find the index of the last element in an array that satisfies a predicate function.
*
* @param {Array} array
* @param {Function} predicate
* @param {number} [fromIndex=array.length - 1]
* @returns {number}
*/
function findLastIndex(array, predicate, fromIndex = array.length - 1) {
const length = array.length;
// Handle negative fromIndex
let start =
fromIndex < 0
? Math.max(length + fromIndex, 0)
: Math.min(fromIndex, length - 1);
for (let i = start; i >= 0; i--) {
if (predicate(array[i], i, array)) {
return i;
}
}
return -1;
}