Lodash _.result()默认值

时间:2015-02-12 12:21:44

标签: javascript lodash

为什么lodash result方法在这种情况下不返回默认值?

  

参数   object(Object):要查询的对象。

     

key(string):要解析的属性的键。

     

[defaultValue](*):如果属性值解析为未定义,则返回值。

var result = _.result({ foo: 1 }, 'bar', 'default');

console.log(typeof _.result({ foo: 1 }, 'bar') === 'undefined') // true

console.log(result); // expected: 'default'

http://jsfiddle.net/dbvs5ney/

2 个答案:

答案 0 :(得分:6)

似乎仅在版本3.0.0中添加了default参数 比较_.result实施:
3.0.0 lodash.js

function result(object, key, defaultValue) {
  var value = object == null ? undefined : object[key];
  if (typeof value == 'undefined') {
    value = defaultValue;
  }
  return isFunction(value) ? value.call(object) : value;
}

2.2.1 lodash.js

function result(object, property) {
  if (object) {
    var value = object[property];
    return isFunction(value) ? object[property]() : value;
  }
}

答案 1 :(得分:2)

抱歉,我无法添加评论。尝试使用更新的lodash版本。您是否特别需要2.2.1版本?