JavaScriptオブジェクトの等価性の比較方法


  1. strict equality (厳密等価比較)

  2. deep equality (深い等価比較)

  3. 厳密等価比較: 厳密等価比較は、===演算子を使用して行います。この演算子は、オブジェクトの参照が同じであるかどうかを比較します。つまり、オブジェクトが同じインスタンスである場合にのみtrueを返します。

例:

const obj1 = { name: "John" };
const obj2 = { name: "John" };
console.log(obj1 === obj2); // false

上記の例では、obj1obj2は異なるオブジェクトインスタンスであり、厳密等価比較はfalseを返します。

  1. 深い等価比較: 深い等価比較は、オブジェクトの中身まで比較する方法です。これには、JSON.stringify()メソッドを使用してオブジェクトを文字列に変換し、その後、変換された文字列の比較を行います。

例:

const obj1 = { name: "John" };
const obj2 = { name: "John" };
console.log(JSON.stringify(obj1) === JSON.stringify(obj2)); // true

上記の例では、JSON.stringify()メソッドによってオブジェクトが文字列に変換され、その後、文字列の比較が行われます。オブジェクトの中身が同じであるため、深い等価比較はtrueを返します。

以上がJavaScriptにおけるオブジェクトの等価性比較の方法です。必要に応じて、これらの方法を使ってオブジェクトの等価性を確認してください。