Filtre nulle à partir d'un tableau en javascript
J'ai une tâche à supprimer false, null, 0, "", indéfini, et NaN éléments d'un tableau donné. J'ai travaillé sur une solution qui supprime tout sauf les valeurs null. N'importe qui peut expliquer pourquoi? Voici le code :
function bouncer(arr) {
var notAllowed = ["",false,null,0,undefined,NaN];
for (i = 0; i < arr.length; i++){
for (j=0; j<notAllowed.length;j++) {
arr = arr.filter(function(val) {
return val !== notAllowed[j];
});
}
}
return arr;
}
bouncer([1,"", null, NaN, 2, undefined,4,5,6]);
- Vous devez être conscient que
.filter()
ne pas enlever quoi que ce soit à partir de la Matrice. Il crée un nouveau tableau avec les éléments supprimés. - Double Possible de Comment filtrer() hors NaN, null, 0, false dans un tableau (JS)
Vous devez vous connecter pour publier un commentaire.
Bien, puisque tous vos valeurs sont falsy, il suffit de faire une
!!
cast (boolean) vérifier:Edit: Apparemment, le casting n'est pas nécessaire:
Et le code ci-dessus supprime
null
très bien, c'estNaN
c'est ça le problème.NaN !== NaN
Nina dit dans sa réponse.!!
. Justex=>x
est suffisant, mais @PranavCBalan de manière à ne pas nécessiter la création d'une fonction..filter(Boolean)
Boolean
plutôt que la fonction de création... toujours à apprendre, fera le modifier.C'est un problème avec
NaN
, parce quelire la suite ici: Des tests contre les
NaN
.Pour le filtrage des valeurs, vous pouvez le vérifier truthyness.
JS:
Vous pouvez utiliser
Array.prototype.filter
pour truthy valeur de check - voir démonstration ci-dessous:JS:
Utilisation
JS: