Js 数组为我们提供了很多的数据查找与遍历的方法

例如:find,findIndex,
但是没有一个倒序查找的方法,我们可以模拟实现一个 findLastfindLastIndex的方法

const findLast = function(array, cb){
  if(!Array.isArray(array)){
    return undefined
  }
  if(array.length === 0){
    return undefined
  }
  for(var i = array.length - 1; i >= 0; i--){
    const item = array[i];
    if (cb.call(null, item, i, array)) {
      return item
    }
  }
  return undefined
}

测试一下

findLast([1,2,3], (item) => item > 1)
const findLastIndex = function(array, cb){
  if(!Array.isArray(array)){
    return -1
  }
  if(array.length === 0){
    return -1
  }
  for(var i = array.length - 1; i >= 0; i--){
    const item = array[i];
    if (cb.call(null, item, i, array)) {
      return i
    }
  }
  return -1
}

测试一下

findLastIndex([1,2,3], (item) => item > 1)