在 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 是否有相當於物件相等性的 HashCode?的詳細內容。更多資訊請關注PHP中文網其他相關文章!