首页 > 关于underscore源码中_where的一个问题

关于underscore源码中_where的一个问题

先附上与代码

_.where = function(obj, attrs, first) {
    if (_.isEmpty(attrs)) return first ? void 0 : [];
    return _[first ? 'find' : 'filter'](obj, function(value) {
        for (var key in attrs) {
            if (attrs[key] !== value[key]) return false;
        }
      return true;
    }); 
};

1.首先就是我看了官方的文档中_.where(list, properties) 是这么定义的,俩参数
然后呢在源码中,这里的first是什么呢?文档地址见http://htmlpreview.github.io/?https://raw.github.com/jashkenas/underscore/1.5.2/index.html#where

2.第二个问题就是这个void 0 是什么?网上找了一个解释说这个是永远返回一个undefined的数值,不是很理解,希望能指点以下,谢谢


  1. first指示是否只返回第一个匹配值。first为true时,返回找到的第一个值,未指定(或false)时,返回找到的整个匹配数组。
  2. void是一个操作符,它指定了一个没有返回值的表达式。没有返回值即为undefined。相当于(function(){})(),执行后啥都没返回。
【热门文章】
【热门文章】