JavaScript JSON オブジェクトを比較する方法

要素の順番が保証されている場合

JSON.stringifyを使う。

 

キー、値がすべて一致する場合

var a = {"WL_Lv1":-1, "WL_Lv2":-1, "WL_Lv3":-1, "WL_Lv4":-1};
var b = {"WL_Lv1":-1, "WL_Lv2":-1, "WL_Lv3":-1, "WL_Lv4":-1};
if(JSON.stringify(a) === JSON.stringify(b)){
   console.log(1);
}
console.log(2);

 

出力結果

1

2

 キーは一致するが値が一致しない場合

var a = {"WL_Lv1":0, "WL_Lv2":-1, "WL_Lv3":-1, "WL_Lv4":-1};
var b = {"WL_Lv1":-1, "WL_Lv2":-1, "WL_Lv3":-1, "WL_Lv4":-1};
if(JSON.stringify(a) === JSON.stringify(b)){
   console.log(1);
}
console.log(2);

 

出力結果

2

 

要素の順番が保証されていない場合

簡単な方法はない。

 

参考

JavaScriptでのObject比較方法

オブジェクトの比較に JSON.stringify() を使ってはいけない —— プロパティには順序が無い - Qiita