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