JavaScriptで配列やオブジェクトを比較して等しいかチェックする方法

20972725609_79e37ae097
photo credit: Rootkit code via photopin (license)

私の愛しいアップルパイへ

あなたの悩み事を当ててみましょう。「文字列や数値の比較はいいとして、配列やオブジェクトを2つ比較して等しいかどうかをJavaScriptで判別したいわ」ってことでしょう。

よろしい、私にはあなたのその質問に答える準備があります。今回はJavaScriptを例に説明しますが、他の言語でも応用できるはずです。

JavaScriptで配列やオブジェクトを比較して等しいかチェックする方法

▼少なくともJavaScriptでは以下のように配列やオブジェクトをそのまま比較するようなことはできません。

array1 == array2

そこで、配列やオブジェクトの中身をjsonに変換してから比較することで、中身が等しいかどうかを簡単にチェックすることができます。

▼それではサンプルコードを見てください。

checkObjDiff: function(object1, object2) {
  // objectの中身をjson化する
  var object1String = JSON.stringify(object1); 
  var object2String = JSON.stringify(object2);
  // json文字列で比較する
  if (object1String === object2String) {
    return false; // 等しければfalse
  } else {
    return true; // 差分があればtrue
  }
}

上記のコードはJSON.stringifyでオブジェクトの中身を文字列にしてから比較しています。

これで、配列やオブジェクトを2つ比較して等しいかどうかを判別できるってわけです。Cooooool!

貴下の従順なる下僕 松崎より

著者画像

システム系の専門学校を卒業後、システム屋として6年半の会社員生活を経て独立。ブログ「jMatsuzaki」を通して、小学生のころからの夢であった音楽家へ至るまでの全プロセスを公開することで、のっぴきならない現実を乗り越えて、諦めきれない夢に向かう生き方を伝えている。