配列要素が数値または文字列の場合は機能しますが、オブジェクトの場合は機能しません
js のオブジェクトは参照型の値であり、2 つのオブジェクトの比較は参照されるメモリ アドレスの比較になります。次のコードのようにします:
これら 2 つのオブジェクトは等しいように見えますが、ヒープ メモリ内の異なるオブジェクトを参照するため、等しくありません。
inArray の実装は、配列を走査し、配列の各項目をターゲット値と比較し、等しい場合はインデックス値を返し、等しくない場合は -1 を返す必要があります。別々に宣言された 2 つのオブジェクトは同じではないため、-1 が返されます。
配列はオブジェクトであると一般的に理解されていますが、オブジェクトは必ずしも配列であるとは限りません。 inArray は配列で動作します
ソースコードでは、isArray: Array.isArray が使用されます。内部にオブジェクトを含めることもできますが、外側の層は [] である必要があります。
js のオブジェクトは参照型の値であり、2 つのオブジェクトの比較は参照されるメモリ アドレスの比較になります。次のコードのようにします:
リーリーこれら 2 つのオブジェクトは等しいように見えますが、ヒープ メモリ内の異なるオブジェクトを参照するため、等しくありません。
inArray の実装は、配列を走査し、配列の各項目をターゲット値と比較し、等しい場合はインデックス値を返し、等しくない場合は -1 を返す必要があります。別々に宣言された 2 つのオブジェクトは同じではないため、-1 が返されます。
配列はオブジェクトであると一般的に理解されていますが、オブジェクトは必ずしも配列であるとは限りません。 inArray は配列で動作します
ソースコードでは、isArray: Array.isArray が使用されます。内部にオブジェクトを含めることもできますが、外側の層は [] である必要があります。
リーリー