JavaScript では、厳密等価演算子を使用してオブジェクトの同等性を判断しても、オブジェクトの型の同等性のみが明らかになります。これにより、オブジェクトの同等性を確認するための Java のハッシュ コード値に似たメカニズムが存在するかどうかという疑問が生じます。
JavaScript に同等の HashCode はありますか?
同様のクエリStack Overflow (「JavaScript に何らかの hashCode 関数はありますか?」) では、解決策の必要性が強調されています。次のシナリオは、その必要性をさらに示しています。
const obj1 = { name: "John Doe", age: 25 }; const obj2 = { name: "John Doe", age: 25 }; console.log(obj1 === obj2); // false (different memory references)
同等の解決策
幸いなことに、JavaScript は lodash ライブラリの形式で解決策を提供します。これは、isEqual() 関数を提供します。
const { isEqual } = require('lodash'); const result = isEqual(obj1, obj2); // true (objects are equal)
Lodash は、パフォーマンスのために ECMAScript 5 の最適化を採用して、各キーと値のペアをブルート フォースで比較します。この回答では以前は Underscore.js を推奨していましたが、Lodash はバグ修正と一貫性の点でそれを上回っていることに注意してください。
以上がJavaScript にはオブジェクトの同等性を表すハッシュコードが存在しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。