私が初めて作業するときjQuery.inArray()
、それはちょっと奇妙に動作します。
オブジェクトが配列内にある場合は0を返しますが、JavaScriptでは0がfalseです。したがって、次のように出力されます:「配列にありません」
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になることを期待します。
だから私の質問は、なぜそれがこのように行われるのですか?本当に嫌いです。しかし、そのようにするのには十分な理由があるはずです。
if jQuery.inArray('test', myarray) isn't -1