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

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

漂亮男人
漂亮男人

全員に返信 (3)
Ty80

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

リーリー

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

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

いいねを押す+0
    阿神

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

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

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

      リーリー
      いいねを押す+0
        最新のダウンロード
        詳細>
        ウェブエフェクト
        公式サイト
        サイト素材
        フロントエンドテンプレート
        私たちについて 免責事項 Sitemap
        PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!