web-dev-qa-db-fra.com

javascript trouve si la valeur N'EST PAS DANS le tableau

Mon problème avec cela est que la boucle continue d'aller dans l'instruction if même pour les codes-barres en double. J'essaie de saisir l'instruction if uniquement pour des codes-barres uniques, mais à la fin de la boucle, myArray contient des doublons .... pourquoi?

var myArray = new Array();  var i = 0;
$("li.foo").each(function(){
   var iBarCode = $(this).attr('barcode');
   if( !( iBarCode in myArray ) ){
      myArray[i++] = iBarCode;
      //do something else
   }
});
20
sadmicrowave

Jquery a une fonction inArray () .

var myArray = new Array();  var i = 0;
$("li.foo").each(function(){
   var iBarCode = $(this).attr('barcode');
   if( $.inArray(iBarCode, myArray) == -1 ){
      myArray[i++] = iBarCode;
      //do something else
   }
});
38
Gazler

Le mot clé in recherche des propriétés, par exemple lorsque vous voulez savoir si un objet dispose d'une méthode disponible. Puisque vous recherchez des valeurs, elle renvoie toujours false.

Vous devriez plutôt utiliser une fonction de recherche de tableau comme Gazler le conseille.

9
slaphappy