javascript - 下划线/lodash : how to filter out empty properties?

标签 javascript underscore.js lodash

为什么我不能用下划线*来做到这一点?

_.omit({ foo: [] }, _.isEmpty);

我期望一个空对象,即 {},但它总是返回似乎是未更改的源对象的副本。

_.omit 应该支持一个回调函数,它的第一个参数将是对象中一个项目的值(我不在乎键是什么,我只想删除值为空的键/值对)。 http://underscorejs.org/#omit

_.isEmpty 有一个参数,应该忽略任何其他参数。它似乎是 _.omit 回调的完美匹配。 http://underscorejs.org/#isEmpty

** 注意:我实际上使用的是下划线 API 的 lodash 实现 (v.2.4.1)。

最佳答案

该死的。我把问题写下来了,但我写的最后一行让我重新思考。我回到了http://underscorejs.org并打开浏览器控制台,并在那里运行我的代码片段。它按预期执行,返回一个空对象!

我用 lodash 3.0.1(两天前刚刚发布!)试了一下,它也能按预期工作。

我已经确认我无法让 lodash 2.4.1 的 _.omit任何谓词函数一起工作。

我猜 lodash 2.4.1 中有一个错误。那个版本稳定了很长一段时间,所以我确信它很普遍,我不会就此抛开我的问题。考虑到 _.omit 背后的抽象级别,我怀疑这个错误也会影响其他功能。我希望这对某人有所帮助。

关于javascript - 下划线/lodash : how to filter out empty properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28267852/

相关文章:

javascript - 将具有两个属性的对象分组到表中

javascript - 如何根据 jquery 中的第一个日期选择器更改日期选择器日期

javascript - 日期格式过滤器不起作用 Angular js

javascript - 每个链接菜单下方的进度条

javascript - JavaScript 中的嵌套数组属性分组

javascript - 下划线 _.debounce() : How to execute method only the last time received?

javascript - 更新 npm 包后出现 "SyntaxError: Unexpected token '/' in...index.ejs while compiling ejs"错误

backbone.js - 使用主干复杂模型渲染带有下划线模板引擎的 html 表

javascript - 如何使用 Lodash 通过多个潜在属性过滤对象集合?

Javascript:如何检查对象数组是否只有一项具有给定值?