これに関する私の問題は、バーコードが重複している場合でもループがifステートメントに入ることです。一意のバーコードのみにifステートメントを入力しようとしていますが、ループの最後にmyArrayに重複があります....なぜですか?
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
}
});
Jqueryには 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
}
});
in
キーワードは、たとえばオブジェクトに使用可能なメソッドがあるかどうかを知りたい場合に、プロパティを検索します。値を探しているため、常にfalseを返します。
代わりに、Gazlerが推奨するように、配列検索機能を使用する必要があります。