Javascript 筛选出具有空值的数组,下划线
我有这个阵列:Javascript 筛选出具有空值的数组,下划线,javascript,underscore.js,Javascript,Underscore.js,我有这个阵列: [null, {name:'John'}, null, {name:'Jane'}] 我想删除空值。有没有一种简单的方法可以使用下划线来实现这一点 这对你有用 过滤器 _.filter(arr,function (value) { return value!==null; }) 拒绝 _.reject(arr,function (value) { return value===null; }) 尝试使用。如果不使用(数组,*值)它将删除所有不需要的值。在您的
[null, {name:'John'}, null, {name:'Jane'}]
我想删除空值。有没有一种简单的方法可以使用下划线来实现这一点 这对你有用
过滤器
_.filter(arr,function (value) {
return value!==null;
})
拒绝
_.reject(arr,function (value) {
return value===null;
})
尝试使用。如果不使用(数组,*值)
它将删除所有不需要的值。在您的情况下,*值==null
来自下划线文档
without_.without(array, *values)
Returns a copy of the array with all instances of the values removed.
所以就用这个方法吧
var a = [null, {name:'John'}, null, {name:'Jane'}]
a = _.without(a, null);
如果数组包含空值或对象,则可以使用:
NB compact删除所有falsy值,因此如果数组可能包含零、false等,那么它们也将被删除
也可以与谓词一起使用:
var everythingButTheNulls = _.reject(array, _.isNull);
最好的解决方案是使用,但当您不包含特定的真值测试函数时,函数的默认行为是删除假值
例如:
_.filter([null, {name:'John'}, null, {name:'Jane'}])
返回不带空值的对象数组:
[{name:'John'}, {name:'Jane'}]
_.reject(arr,u.isNull)可以说更干净。或者只是u0.without(arr,null)来删除null,如果您的lodash版本支持0.isNil,我想不使用(array,undefined)来删除null。。。这将过滤null、nan和未定义var everythingButTheNulls=\ u0.reject(数组,\ u0.isNil)代码>
[{name:'John'}, {name:'Jane'}]