›JavaScript【JavaScript】配列の比較を行う方法【equals相当/Array型の等価判定】JavaScriptの配列型にはequalsメソッドが存在しません。比較演算子による比較は、等価の判定に対応していません。<anonymous>:1:8配列同士の比較を行うためには、各要素を個別に比較したり、配列を文字列化した結果を比較することなどが有効です。繰り返し文による要素比較(確実な方法)JSON文字列による比較(簡潔な方法。比較的厳格な比較)toStringによる文字列比較(簡易な方法。若干抽象的で曖昧な比較)繰り返し文による要素比較for文で個別に要素を比較するのがもっとも確実です。比較の際には!==演算子による厳格な比較が必要となります。undefinedが等価な値として判定されてしまうため注意が必要です。falseJSON文字列による比較Array型の配列を安全かつ正確に比較するためには、JSON形式の文字列による比較も有効です。JSON.stringifyメソッドを用いて配列を文字列化し、両値を比較します。falseJSON形式による文字列化には、型の種類に応じた厳格な変換が行われるというメリットがあります。nullやundefinedに対する変換もエラーにならず、安定的な値に変換されます。"[{"b":2,"a":1}]"(順序を維持するため注意)toStringによる文字列比較toStringメソッドの結果を文字列比較する方法も知られていますが、値がnullやundefinedの場合には実行時エラーが発生してしまいます。<anonymous>:1:19この問題に対処するためには、toStringの代わりに、文字列結合やStringコンストラクタによる文字列化の結果を活用する必要があります。true("null"文字列同士の比較が行われるため)なおオブジェクト型や配列型の値を含んだ配列の場合は、toStringでは厳格な文字列化が行われず、厳密な比較が行えなくなるという問題があるため注意してください。JSON文字列による比較が必要となります。"[[1],[2,3]]"もっともtoStringスタイルの比較は、異なるの型同士の等価比較が行えるという特徴があります。"["1",2]"ちなみにtoStringスタイルによる比較では、いずれか一方を文字列化するだけでも等価判定が行えます。true配列の比較対象が文字列の場合には、自身の配列をtoStringメソッドで文字列に変換した上で、実際の比較を行うことになるためです。""相当の処理が行われることになります。同一の要素を含むかどうかを判定したい場合には要素のソートを行うとよいでしょう。true一般的な方法ではありませんが、比較演算子を用いた等価判定のテクニックもあります。比較演算子は内部的にtoStringの結果を比較しています。