javascript オブジェクトを比較する
- 作成日 2020.09.25
- 更新日 2022.06.29
- javascript
- javascript
javascriptで、JSON.stringifyを使用して、オブジェクトを比較するサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 102.0.5005.115
オブジェクトを比較
「JSON.stringify」を使えば、オブジェクトを比較することが可能です。
let obj1 = { a: 1, b: 2, c: 3 };
let obj2 = { a: 1, b: 2, c: 3 };
console.log(JSON.stringify(obj1) == JSON.stringify(obj2)); // true
ただし、並びが違うと「false」となってしまいます。
let obj1 = { a: 1, b: 2, c: 3 };
let obj2 = { b: 2, a: 1, c: 3 };
console.log(JSON.stringify(obj1) == JSON.stringify(obj2)); // false
その場合は、「ソート」してから比較することで「true」になります。
let obj1 = { a: 1, b: 2, c: 3 };
let obj2 = { c: 3, b: 2, a: 1 };
function objSort(obj) {
// ソート後のオブジェクト
let objsort = {};
// キーをソート
let keys = Object.keys(obj).sort();
// ソートしたオブジェクトを新しく作成
keys.forEach(key => objsort[key] = obj[key]);
return objsort;
}
// true
console.log(JSON.stringify(objSort(obj1)) == JSON.stringify(objSort(obj2)));
-
前の記事
javascriptでhtmlエスケープを行う 2020.09.25
-
次の記事
javascriptでhtmlをアンエスケープする 2020.09.25
コメントを書く