VIDTAKER.COM

Q&A

jQueryのinArrayは常に-1を返している


私が理解できない、なぜ私はlastProductIndex時明らかにlastProductID配列内の-1に入れません!

var lastProductID = 6758;
var allProductIDs = [5410, 8362, 6638, 6758, 7795, 5775, 1004, 1008, 1013]
var lastProductIndex = $.inArray(lastProductID, allProductIDs);



7 Replies

1)

何をallProductIDs.indexOf(lastProductID)戻り?


2)

あなたのページに他のJavaScriptライブラリを使用していますか?

そこの競合する可能性が$省略がある場合。これは、いくつかの方法、1つの自己解凍形式の無名関数内のコードをラップになる解決することができます

(function($) {
    var lastProductIndex = $.inArray(lastProductID, allProductIDs);
})(jQuery);

3)

ここではなぜ誰もが入力されていません言語を憎んでいる。私は初期値とlastProductIndex値を設定していたが、それは文字列でした(私が返されるJSONからHttpResponseオブジェクトから値を得ていたためです。だからその結果、私が返されるJSONの値のための文字列に変数を設定していた文字列でした。私はハード$に数値を6758符号化inArrayそれがうまく働いたように私の注意を捉えました。


4)

これも最初は私を混乱、私は同じ問題があった。それはjQuery.inArray(だ)文字列が必要です。だからあなたが出来る:

ヴァールlastProductID ="6758";

私の場合は私がしていた:

ヴァールfooは= date.getTime()と/ 1000;

どのは、常に-1 $から返される結果。inArray()を

しかし、あなたは単なる文字列にキャストすることができます:

ヴァールfooは=文字列(date.getTime()と/ 1000);

ホープ誰かに役立ちます:)


5)

この代わりにしてください:

$.grep(allProductIDs, function(n) { return n == lastProductID; });

警告:grepの配列を返します。

これは、jQueryのように===の代わりにしない== inArrayています。


6)

私は昨日、同じ問題を抱えて

var data=[2,4,6,8];
alert( $.inArray(4,data) ) // output 1 as expected
alert( $.inArray("4",data) ) // output -1 as expected

一般的に、このときに値を入力要素または文字列を返します何から確認を得るに発生します。あなたが行う必要があるparseInt()番号に変換するために...


7)

それは2行の末尾にセミコロンですか?