美文网首页
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