javascript – 为什么lodash中的_.pick(object,_.identity)返回空对象?

我正试图将下划线移到lodash.但是这行代码让我感到困惑.

在我目前的项目中,我们有这行代码.

obj = _.pick(obj, _.identity);

这很明显,它试图删除空属性.

现在,当我切换到lodash时,同一行代码为我返回空对象.

我想弄清楚为什么.如何在lodash中实现相同的效果?

我在lodash和下划线网站上试过这个.他们产生不同的结果.

这是来自lodash

var obj = {_v:'10.1', uIP:'10.0.0.0', _ts:'123'}
_.pick(obj, _.identity);
Object {}

这是来自下划线

var obj = {_v:'10.1', uIP:'10.0.0.0', _ts:'123'}
_.pick(obj, _.identity);
Object {_v: "10.1", uIP: "10.0.0.0", _ts: "123"}

解决方法:

Why _.pick(object, _.identity) in lodash returns empty Object?

因为lodash中的pick需要传递一系列属性名称:

var object = { 'a': 1, 'b': '2', 'c': 3 };

_.pick(object, ['a', 'c']);
// → { 'a': 1, 'c': 3 }

How do I achieve the same effect in lodash?

Lodash有一个名为pickBy的方法,它接受一个回调函数:

var object = { 'a': 1, 'b': '2', 'c': 3 };

_.pickBy(object, _.isNumber);
// → { 'a': 1, 'c': 3 }
上一篇:javascript – 用于反转键的Lodash方法:对象中的值


下一篇:logback.xml_appender配置