为什么我不能用下划线*?
_.omit({ foo: [] }, _.isEmpty);
我期待一个空对象,即{}
,但它总是返回看似未更改的源对象的副本。
_.omit
应该支持一个回调函数,它的第一个参数将是对象中一个项的值(我不在乎键是什么,我只想删除键/值对,其中值为空)。
http://underscorejs.org/#omit
_.isEmpty
只有一个参数,应该忽略其他参数。这似乎是_.omit
回调的完美匹配。
http://underscorejs.org/#isEmpty
**注意:我实际上正在使用下划线API的lodash实现(v.2.4.1)。
答案 0 :(得分:4)
该死。我写了这个问题,但是我写的最后一行让我再次思考。我回到http://underscorejs.org并打开浏览器控制台,然后在那里运行我的代码片段。它按预期执行,返回一个空对象!
我尝试使用lodash 3.0.1(仅在两天前发布!),它也按预期工作。
我已经确认我无法让lodash 2.4.1' _.omit
使用任何谓词函数。
我猜这是lodash 2.4.1中的一个错误。那个版本稳定了很长一段时间,所以我确信它很普遍,我不会丢掉我的问题。鉴于_.omit
背后的抽象级别,我怀疑这个bug也会影响其他功能。我希望这有助于某人。