Ответ 1
Попробуйте использовать _.without(array, *values)
, чтобы удалить все значения, которые вам не нужны. В вашем случае * значения == null
У меня есть этот массив:
[null, {name:'John'}, null, {name:'Jane'}]
Я хочу удалить нулевые значения. Есть ли простой способ сделать это с подчеркиванием?
Попробуйте использовать _.without(array, *values)
, чтобы удалить все значения, которые вам не нужны. В вашем случае * значения == null
Если массив содержит либо нули, либо объекты, вы можете использовать compact:
var everythingButTheNulls = _.compact(list);
NB compact удаляет все значения ложности, поэтому, если массив может содержать нули, false и т.д., то они также будут удалены.
Также можно использовать отклонить с помощью isNull предикат:
var everythingButTheNulls = _.reject(array, _.isNull);
Это будет работать для вас
Фильтр
_.filter(arr,function (value) {
return value!==null;
})
Отклонить
_.reject(arr,function (value) {
return value===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);