1

重複の可能性:
演算子のjavascript

なぜ("a" in ["a","b"])yield false(1 in [1,2])yieldなのtrueですか?"a"その配列の最初の要素と一致せず、1が一致する理由はありますか?文字列で機能しないのはなぜですか?

4

1 に答える 1

5

inオペレーターは、値ではなくキーによってプロパティの存在をチェックします。また、長さ2の配列にはインデックスがあります"1"-arr["1"]は値2です。たとえば、も0 in ["a", "b"]ですtrue。動作は、使用されている文字列や数値に依存しません。

通常は、配列ではなく、プレーンオブジェクトで使用します。のよう"a" in {a:1} === trueに、または"b" in {a:1} === false

于 2012-08-04T11:28:27.017 に答える