首頁 >web前端 >js教程 >JavaScript 是否有相當於物件相等性的 HashCode?

JavaScript 是否有相當於物件相等性的 HashCode?

Linda Hamilton
Linda Hamilton原創
2024-12-30 20:08:17306瀏覽

Does JavaScript Have a HashCode Equivalent for Object Equality?

在 JavaScript 中確定物件相等性

在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn