2017-02-08 59 views
0

所以,我剛剛瞭解了Python的哈希表實現,它是字典。Python字典的Javascript實現

因此,這裏是我的理解,到目前爲止,請糾正我,如果我錯了:

  1. 字典基本上包含鍵 - 值對的結構化數據。
  2. 當我們想要搜索一個密鑰時,我們可以直接調用dict [key]。這是可能的,因爲python在密鑰上執行了一定的散列函數。散列結果是字典中值的索引。這樣,我們可以在執行散列函數後直接獲取值,而不是遍歷列表。
  3. Python會在哈希表填滿其最大大小的2/3時通過增加「桶」的數量來更新哈希表。
  4. Python將始終確保每個「桶」只有1個入口,以便查找性能最佳,無需迭代。

我的第一個問題是,我正確理解python字典嗎?

二,javascript對象是否也具備了所有這四項功能?如果沒有,一般是否有另一個字典/散列表的內置JavaScript實現?

+0

不要濫用JavaScript對象作爲字典 - 請參閱更適當的['Map'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)和[ 'WeakMap'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) – naomik

回答

0

JavaScript對象可用作字典,但有關JavaScript Map實現的詳細信息,請參見Map。一些關鍵的外賣店:

  • 的對象原型可能會導致鍵衝突
  • 對象鍵可以是字符串或符號。地圖鍵可以是任何值。
  • 沒有直接的方法來確定一個對象有多少「映射」條目,而Map.prototype.size告訴你它有多少個條目。

作爲一個經驗法則:如果你正在語義上創建一個集合(一個關聯數組),使用一個Map。如果你有不同類型的值存儲,使用一個對象。