find

对所给列表的项目进行匹配,并返回匹配到的第一个项目。

find

_.find = _.detect = function(obj, predicate, context) {
    //findIndex与findKey是核心方法
    var keyFinder = isArrayLike(obj) ? _.findIndex : _.findKey;
    var key = keyFinder(obj, predicate, context);
    if (key !== void 0 && key !== -1) return obj[key];
};

findIndex

//针对数组遍历匹配的方法
var createPredicateIndexFinder = function(dir) {
    return function(array, predicate, context) {
      predicate = cb(predicate, context);
      var length = getLength(array);
      var index = dir > 0 ? 0 : length - 1;
      for (; index >= 0 && index < length; index += dir) {
        if (predicate(array[index], index, array)) return index;
      }
      return -1;
    };
  };

针对对象遍历匹配的方法

_.findKey = function(obj, predicate, context) {
    predicate = cb(predicate, context);
    var keys = _.keys(obj), key;
    for (var i = 0, length = keys.length; i < length; i++) {
      key = keys[i];
      if (predicate(obj[key], key, obj)) return key;
    }
  };
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在linux下面工作,有些命令能够大大提高效率。本文就向大家介绍find、grep命令,他哥俩可以算是必会的lin...
    拿破轮胎阅读 4,565评论 0 4
  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...
    很少更新了阅读 3,130评论 0 0
  • 跃迁: 1.二八原则驱动“跃迁” 2.找到头部:第二轮的跃迁 3.连接头部:第三轮的跃迁 通常认为只要努力去慢慢积...
    水中望我阅读 1,391评论 0 0
  • 1.游玩时间 最好在早上七点半之前赶到园区门口排队,园区门口有一个喷泉,喷泉右边排队人较少。迪士尼有三个门,第一个...
    向日葵ally阅读 4,385评论 0 0
  • 1.每天背60个单词 2.练习毛笔字 3.学会素描 4.学会泡茶 5.学习办公软件 6.学习ps 7.去旅行 8....
    做更好的自己zwy阅读 1,472评论 0 0

友情链接更多精彩内容