ホームページ  >  に質問  >  本文

javascript - JqueryのinArrayメソッドはオブジェクトの判定をサポートしていませんか?

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

漂亮男人漂亮男人2711日前899

全員に返信(3)返信します

  • PHP中文网

    PHP中文网2017-05-19 10:25:32

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

    リーリー

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

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

    返事
    0
  • 阿神

    阿神2017-05-19 10:25:32

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

    返事
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:25:32

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

    リーリー

    返事
    0
  • キャンセル返事