# 实现findIndex,支持从N索引开始寻找并且支持前后方向

function baseFindIndex(array, predicate, fromIndex, fromRight) {
  const { length } =  array;
  let index = fromIndex + (fromRight ? 1 : -1);
  
  while((fromRight ? index-- : ++index < length)) {
    if (predicate(array[index], index, array)) {
      return index;
    }
  }
  return -1;
}

初始索引是fromIndex控制,会根据fromRight来增减1。往前,则下标后移一位,往后,则下标往前移一位。

而前后方向是依据fromRight控制循环结束条件,往前条件为下标0,往后条件为数组长度。

最近更新时间: 2020/9/6 11:30:38