我有这个数组:
[null, {name:'John'}, null, {name:'Jane'}]
我想删除空值。使用下划线有一种简单的方法吗?
答案 0 :(得分:48)
如果数组包含空值或对象,则可以使用compact:
var everythingButTheNulls = _.compact(list);
NB compact删除所有虚假值,因此如果数组可能包含零,false等,那么它们也将被删除。
var everythingButTheNulls = _.reject(array, _.isNull);
答案 1 :(得分:20)
尝试使用_.without(array, *values)
它会删除您不需要的所有值。在你的情况下* values == null
答案 2 :(得分:5)
这对你有用
过滤强>
_.filter(arr,function (value) {
return value!==null;
})
<强>拒绝强>
_.reject(arr,function (value) {
return value===null;
})
答案 3 :(得分:0)
来自下划线文档
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);
答案 4 :(得分:0)