为了账号安全,请及时绑定邮箱和手机立即绑定

underscore源码_.max函数写法疑问

underscore源码_.max函数写法疑问

慕姐4208626 2018-10-12 14:15:30
underscore源码中求最大值的函数有一处比较使用的是:if (value != null && value > result)这里为什么要加多一个value != null的判断~难道还有value为null同时其又还比别的值大的情况?对应函数源码如下:_.max = function(obj, iteratee, context) {    var result = -Infinity,      lastComputed = -Infinity,      value, computed;    if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object') && obj != null) {      obj = isArrayLike(obj) ? obj : _.values(obj);      for (var i = 0, length = obj.length; i < length; i++) {        value = obj[i];        if (value != null && value > result) {          result = value;        }      }    } else {      iteratee = cb(iteratee, context);      _.each(obj, function(v, index, list) {        computed = iteratee(v, index, list);        if (computed > lastComputed || computed === -Infinity && result === -Infinity) {          result = v;          lastComputed = computed;        }      });    }    return result;  };
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

在Chrome的控制台:

null > 0 // falsenull > -1 // true


查看完整回答
反对 回复 2018-11-07
  • 1 回答
  • 0 关注
  • 464 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信