J'ai ce tableau:
[null, {name:'John'}, null, {name:'Jane'}]
Je veux supprimer les valeurs nulles. Existe-t-il un moyen simple de le faire avec un soulignement?
Si le tableau contient des valeurs nulles ou des objets, vous pouvez utiliser compact :
var everythingButTheNulls = _.compact(list);
NB compact supprime toutes les valeurs fausses, donc si le tableau peut contenir des zéros, des faux etc., alors ils seront également supprimés.
Pourrait également utiliser ( rejeter avec le isNull prédicat:
var everythingButTheNulls = _.reject(array, _.isNull);
Essayez d'utiliser _.without(array, *values)
cela supprimera toutes les valeurs dont vous n'avez pas besoin. Dans votre cas * valeurs == null
Cela fonctionnera pour vous
Filtre
_.filter(arr,function (value) {
return value!==null;
})
Rejeter
_.reject(arr,function (value) {
return value===null;
})
La meilleure solution consiste à utiliser compact , mais le comportement par défaut de la fonction filter lorsque vous n'incluez pas de fonction de test de vérité spécifique consiste à supprimer fausses valeurs
Par exemple:
_.filter([null, {name:'John'}, null, {name:'Jane'}])
renvoie un tableau d'objets sans les nulls:
[{name:'John'}, {name:'Jane'}]
De la documentation de soulignement
without_.without(array, *values)
Returns a copy of the array with all instances of the values removed.
Il suffit donc d'utiliser cette méthode
var a = [null, {name:'John'}, null, {name:'Jane'}]
a = _.without(a, null);