推荐答案
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
。例如,查找数组中最后一个偶数的索引。
这两个方法在处理需要从数组末尾开始查找的场景时非常有用,尤其是在处理大型数组时,可以减少不必要的遍历。