[JS] JavaScript Map
Map @ MDN - JavaScript Reference
Map
物件是簡單的 key-value 配對,物件(Object)
和 Map
很相似,但是有以下幾點差別:
- Map 裡面的 key 是唯一的,如果
set
到重複的 key,則舊的 value 會被覆蓋。 Map
中的keys
會根據被添加資料的時間而有順序性,但Object
沒有順序性。- Object 的鍵(key)只能是
字串(Strings)
或Symbols
,而Map
的鍵可以是任何值,包含物件、函式或原始型別(primitive type)。 - 若要取得
Map
的大小非常容易,只需要取得 size 屬性即可;而 Object 的大小必須手動決定。 - 當需要經常增添刪減屬性時,使用
Map
的效能會比Object
來得好。
ES6 中如果希望「陣列(Array)」的元素不會重複,可以使用
Set
;如果是希望物件(Object)的鍵不會重複,則可以使用Map
。