Javascript 与u.where相反(列表、属性)

Javascript 与u.where相反(列表、属性),javascript,underscore.js,Javascript,Underscore.js,我有一个对象数组,我为一些客户设置了Selected=true。 使用。我得到了一个新的阵列,其中只有选定的客户。 是否有任何方法可以获取不具有此属性的客户? 我不想将Selected=false设置为其他客户,然后通过 _.where(customers, {Selected: false}); 多谢各位 如果您确定不存在该属性,可以这样做: _.where(customers, {Selected: undefined}); 如果对象选择了选项:false 您还可以使用\uu0.fil

我有一个对象数组,我为一些客户设置了
Selected=true
。 使用
我得到了一个新的阵列,其中只有选定的客户。 是否有任何方法可以获取不具有此属性的客户? 我不想将
Selected=false设置为其他客户,然后通过

_.where(customers, {Selected: false}); 

多谢各位

如果您确定不存在该属性,可以这样做:

_.where(customers, {Selected: undefined});
如果对象选择了
选项:false

您还可以使用
\uu0.filter
,这可能会更好:

_.filter(customers, function(o) { return !o.Selected; });

我不知道有什么正好相反的说法,但您可以很容易地使用它,它允许您指定一个函数作为谓词(或者类似地,
reject
):

类似地,如果您想要一个其所选
未定义或为false的客户列表:


改用.filter方法

_.filter(customers, function(c) {return !c.Selected;});

使用
\拒绝

_.reject(customers, function(cust) { return cust.Selected; });
文件:

返回列表中的值,其中不包含真值测试(迭代器)通过的元素。过滤器的反面


如果您非常需要此特定逻辑,另一个选项是:您还可以使用以下命令创建自己的下划线Mixin:
.Mixin
,并创建
.whereNot
函数,并保留
的漂亮简短语法。where

非常感谢!它是如此简单,我不知道你可以传递未定义的参数。再次感谢你。
_.filter(customers, function(c) {return !c.Selected;});
_.reject(customers, function(cust) { return cust.Selected; });