underscore/lodash: 如何过滤掉空属性?

underscore/lodash: how to filter out empty properties?

为什么我不能使用下划线*?

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

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

_.omit 应该支持一个回调函数,它的第一个参数将是对象中的一个项目的值(我不关心键是什么,我只想删除 key/value 对,其中值为空)。 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 的 _.omitany 谓词函数一起工作。

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