我正在尝试将下划线移动到 lodash。但是这行代码让我很困惑。
在我当前的项目中,我们有这行代码。
obj = _.pick(obj, _.identity);
很明显,它正在尝试删除空属性。
现在,当我切换到 lodash 时,同一行代码会为我返回空对象。
我想知道为什么。如何在 lodash 中实现相同的效果?
我在 lodash 和 underscore 网站上都试过了。它们产生不同的结果。
这是来自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?
因为 pick
在 lodash 中,期望将属性 names 的 array 传递给它:
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 中的 _.pick(object, _.identity) 返回空对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36189232/