0

私はJQueryで書かれた関数を持っています。次のようないくつかの配列があります。

var array1 = ["pink","yellow","green","red"],
    array2 = ["peony","violet","rose","daisy"],
    array3 = ["dalmation","kelpie","shepard","dachshund"],

と呼ばれる入力からの値があります

$query

$query の値が 3 つの配列のいずれかの要素の値と等しいかどうかを調べたいと思います。はいの場合、それがどの配列であるかを知りたいです。インデックス番号 (つまり、配列 1 の場合は 0、配列 2 の場合は 1) は正常に機能します。

この JSFiddle はこちらhttp://jsfiddle.net/hJrAA/ from this StackOverflow question複数の配列で文字列を検索し、var を設定します - jQueryは興味をそそられますが、入力クエリの値を何に変更しても、

 console.log(inArrays('red', first, second, third));

('red' はクエリです) 常に同じ値 (2) を返します。

クエリが見つかった特定の配列への参照を返すように、そのコードを変更する方法を誰かが提案できますか?

4

2 に答える 2

0

http://api.jquery.com/jQuery.inArray/

$.inArray() メソッドは、一致が見つからない場合に -1 を返すという点で、JavaScript のネイティブ .indexOf() メソッドに似ています。配列内の最初の要素が値と一致する場合、$.inArray() は 0 を返します。

JavaScript は 0 を大まかに false と同等 (つまり 0 == false ですが、0 !== false) として扱うため、配列内の値の存在を確認する場合は、それが等しくない (またはより大きい) かどうかを確認する必要があります。 ) -1.

if ($.inArray(val, arrays[i]) > -1)
于 2013-06-04T21:12:00.273 に答える