你好,
这是过滤器的常见用例。 给定
a = {35: true, 45: true, 55: false}
一个人想过滤并只取回值为真的对:
_.filter(a, function(val, key) {
val === true;
});
// => {35: true, 45: true}
目前,诸如 filter push(value) 这样的函数可以得到一个数组。
是否有任何简单的方法可以通过解决方法来实现这一点,如果没有,您是否会考虑根据我们提供的是对象还是列表来切换返回的类型?
+1
我只需要同样的东西,这个问题是我在搜索时得到的第二个谷歌 git。 使对象上的 _.filter 返回对象的唯一问题是向后兼容性......
filter
是一个源自 ES5 的函数……我们当然不想破坏与规范的基本兼容性。
为了解决更大的问题:所有 Underscore.js 可枚举函数都可以接受对象或数组,并且都返回数组。 在这里打破一致性需要同时为所有功能完成,而不仅仅是其中一个。 当前的 API 允许您编写 Underscore 函数,而不必担心输入类型。
我已经为带有 key/val 持久性的对象的这个 mixin gist 跟踪映射函数添加了过滤器和拒绝函数:
+1
+1 你们可以一次添加一个_.filterObj
(等),类似于_.mapObj
吗?
jk,刚刚看到_.pick
非常适合我的用例
@jtfairbank正是我所需要的,也许是大多数人来这里寻找“过滤”对象并创建对象时所需要的。
最有用的评论
jk,刚刚看到
_.pick
非常适合我的用例