Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 1.15 KB

数组_findIndex.md

File metadata and controls

44 lines (33 loc) · 1.15 KB

findIndex() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。

它接收两个参数,分别为callback和thisArg。

  • callback:为数组中每个元素的执行函数,该函数接收一至三个参数
    • item:数组正在处理的当前元素
    • index:可选,数组正在处理的当前元素的索引
    • array:可选,方法正在操作的数组
  • thisArg:可选参数。是当执行回调函数callback时,用在this的值
const _findIndex = function (callback, thisArg) {
  // 判断this不等于null
  if (this === null) {
    throw new TypeError('this is null or not defined');
  }

  // 判断callback是不是一个函数
  if (typeof callback !== 'function') {
    throw new TypeError(callback + ' is not a function');
  }

  const arr = this;
  const len = arr.length;

  let index = 0;
  let newArr = [];

  // 遍历数组
  while (index < len) {
    // 如果通过回调函数的测试,则添加到newArr
    if (callback.call(thisArg, arr[index], index, arr)) {
      return index;
    }
    index++;
  }

  // 如果没有一个满足条件的话则返回 -1
  return -1;
};