美文网首页
2022-04-16 lodash源码学习 - findInde

2022-04-16 lodash源码学习 - findInde

作者: 网恋被骗二块二 | 来源:发表于2022-04-17 16:28 被阅读0次

function findIndex(array, predicate, fromIndex)

@param {Array} array The array to inspect.
需要搜索的数组

@param {Function} [predicate=_.identity] The function invoked per iteration.
这个函数会在每一次迭代调用

@param {number} [fromIndex=0] The index to search from.
要搜索的索引

function findIndex(array, predicate, fromIndex) {
        // 老规矩,判断数组是否合理,如非数组对象或者空数组
        var length = array == null ? 0 : array.length;
        if (!length) {
          // 如果没有长度,直接返回-1
          return -1;
        }
        // 第三参数是否传参? 若没有传参默认为0,若传参则转化成整数(toInteger 接受任意类型的参数)
        var index = fromIndex == null ? 0 : toInteger(fromIndex);
        if (index < 0) {
          // 若转化后的下标小于0,则增加数组长度的数量,再与0判断取最大值
          index = nativeMax(length + index, 0);
        }
        // 调用没有迭代调用的方法,传入参数
        // getIteratee 和回调函数有关,如果自定义了回调函数,则返回自定义的回调函数
        // 如果是提供了对应方法(应该是指传入的map、forEach等),则调用该方法,并返回结果
        return baseFindIndex(array, getIteratee(predicate, 3), index);
      }

相关文章

网友评论

      本文标题:2022-04-16 lodash源码学习 - findInde

      本文链接:https://www.haomeiwen.com/subject/ejwhertx.html