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; });