推荐答案
Array.prototype.findLast 和 Array.prototype.findLastIndex 是 ECMAScript 2023 新增的数组方法,用于从数组的末尾开始查找元素。
Array.prototype.findLast:从数组的末尾开始查找第一个满足条件的元素,并返回该元素。如果没有找到满足条件的元素,则返回undefined。Array.prototype.findLastIndex:从数组的末尾开始查找第一个满足条件的元素,并返回该元素的索引。如果没有找到满足条件的元素,则返回-1。
本题详细解读
Array.prototype.findLast
findLast 方法从数组的末尾开始遍历,查找第一个满足回调函数条件的元素,并返回该元素。如果数组中没有元素满足条件,则返回 undefined。
语法
arr.findLast(callback(element[, index[, array]])[, thisArg])
callback:用于测试每个元素的函数,接受三个参数:element:当前正在处理的元素。index(可选):当前元素的索引。array(可选):调用findLast的数组。
thisArg(可选):执行callback时使用的this值。
示例
const array = [1, 2, 3, 4, 5]; const lastEven = array.findLast((num) => num % 2 === 0); console.log(lastEven); // 输出: 4
Array.prototype.findLastIndex
findLastIndex 方法从数组的末尾开始遍历,查找第一个满足回调函数条件的元素,并返回该元素的索引。如果数组中没有元素满足条件,则返回 -1。
语法
arr.findLastIndex(callback(element[, index[, array]])[, thisArg])
callback:用于测试每个元素的函数,接受三个参数:element:当前正在处理的元素。index(可选):当前元素的索引。array(可选):调用findLastIndex的数组。
thisArg(可选):执行callback时使用的this值。
示例
const array = [1, 2, 3, 4, 5]; const lastEvenIndex = array.findLastIndex((num) => num % 2 === 0); console.log(lastEvenIndex); // 输出: 3
使用场景
findLast:当你需要从数组的末尾开始查找某个元素时,可以使用findLast。例如,查找数组中最后一个偶数。findLastIndex:当你需要从数组的末尾开始查找某个元素的索引时,可以使用findLastIndex。例如,查找数组中最后一个偶数的索引。
这两个方法在处理需要从数组末尾开始查找的场景时非常有用,尤其是在处理大型数组时,可以减少不必要的遍历。