JavaScript HashMap 等效項:探索高效的實作
在JavaScript 中,使用符號「hash[X]」直接存取物件的屬性不會對物件進行哈希處理。相反,它將其轉換為字串並檢查該字串在常規字典中是否存在,而不應用任何哈希機制。此外,不考慮物件相等性,導致覆蓋具有相同字串表示形式的物件。
要解決此問題並實現高效的哈希映射,建議使用唯一鍵手動哈希對象,然後利用生成的字串作為 JavaScript 字典的鍵。這種方法提供了對索引的控制,而不會產生效能開銷。
這是一個範例實作:
<code class="javascript">var key = function(obj) { // Generate a unique object-dependent key return obj.totallyUniqueEmployeeIdKey; // Just an example }; var dict = {}; dict[key(obj1)] = obj1; dict[key(obj2)] = obj2;</code>
透過這種方式,您可以利用 JavaScript 物件內建的雜湊表,同時減輕潛在的衝突具有預設屬性。鍵的選擇可以根據物件的獨特特徵進行自訂。
更新(2014):
這個解決方案的簡單性值得進一步闡述。 JavaScript 的底層物件實作了哈希表,從而無需模擬它們。因此,謹慎的做法是辨識物件本身內的唯一鍵。透過使用 JavaScript 的物件作為鍵值存儲,您可以利用其本機雜湊表實作。
ECMAScript 6 解:
ECMAScript 6 引進了 Map 和 Set 資料結構,提供高效率的雜湊功能。映射允許任何值作為鍵(包括物件),從而無需手動產生鍵。此外,它們保持插入順序,允許可預測的迭代。
總之,在尋找等效的JavaScript 雜湊映射時,請考慮以下選項:
以上是如何在 JavaScript 中實現 HashMap 功能:手動哈希、字串轉換或使用 Map 和 Set?的詳細內容。更多資訊請關注PHP中文網其他相關文章!