jQuery.inArray() を正しく使用するにはどうすればいいですか? 質問する

jQuery.inArray() を正しく使用するにはどうすればいいですか? 質問する

初めて使用しましたjQuery.inArray()が、動作が少し奇妙です。

オブジェクトが配列内にある場合は 0 を返しますが、Javascript では 0 は false です。したがって、次のように出力されます: "is NOT in array"

var myarray = [];
myarray.push("test");

if(jQuery.inArray("test", myarray)) {
    console.log("is in array");
} else {
    console.log("is NOT in array");
}

if ステートメントを次のように変更する必要があります。

if(jQuery.inArray("test", myarray)==0)

しかし、これではコードが読みにくくなります。特に、この関数を知らない人にとっては。彼らは、配列に「test」がある場合、jQuery.inArray("test", myarray) が true を返すことを期待します。

そこで私の質問は、なぜこのように行われるのかということです。私はこれが本当に嫌いです。しかし、このように行うには、きっとちゃんとした理由があるはずです。

ベストアンサー1

inArray配列内の要素のインデックスを返します。配列内に項目が存在するかどうかを示すブール値ではありません。要素が見つからない場合は、-1が返されます。

したがって、アイテムが配列内に存在するかどうかを確認するには、次を使用します。

if(jQuery.inArray("test", myarray) !== -1)

おすすめ記事