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

标签 javascript underscore.js lodash

我正在尝试将下划线移动到 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 中,期望将属性 namesarray 传递给它:

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/

相关文章:

javascript - Highcharts:X 轴、MySQL 日期时间

javascript 函数提升不起作用

javascript - 搜索时不同的选择下拉列表应具有相同的下拉选项值

javascript - loDash——有没有一种方法可以简化可读性

javascript - 遍历数组以找到具有匹配 ID 的所有对象,并将这些对象合并到数组中的一个元素中。

php - 创建警报并在警报后继续此页面

javascript - Underscore.js,测试整个数组是否在另一个数组中

javascript - 如何使用下划线根据 id 提取对象

javascript - Underscore.js 的each 方法中的+obj.length 是什么意思?

javascript - 尝试做过滤器时如何正确构造 reducer ?