javascript - JqueryのinArrayメソッドはオブジェクトの判定をサポートしていませんか?
漂亮男人
漂亮男人 2017-05-19 10:23:32
0
3
991

配列要素が数値または文字列の場合は機能しますが、オブジェクトの場合は機能しません

漂亮男人
漂亮男人

全員に返信(3)
Ty80

js のオブジェクトは参照型の値であり、2 つのオブジェクトの比較は参照されるメモリ アドレスの比較になります。次のコードのようにします:

リーリー

これら 2 つのオブジェクトは等しいように見えますが、ヒープ メモリ内の異なるオブジェクトを参照するため、等しくありません。

inArray の実装は、配列を走査し、配列の各項目をターゲット値と比較し、等しい場合はインデックス値を返し、等しくない場合は -1 を返す必要があります。別々に宣言された 2 つのオブジェクトは同じではないため、-1 が返されます。

いいねを押す +0
阿神

配列はオブジェクトであると一般的に理解されていますが、オブジェクトは必ずしも配列であるとは限りません。 inArray は配列で動作します

いいねを押す +0
習慣沉默

ソースコードでは、isArray: Array.isArray が使用されます。内部にオブジェクトを含めることもできますが、外側の層は [] である必要があります。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート