筆記 - JavaScript ES6 Map and Set
本篇學習 JavaScript ES6 中的 Map and Set。
Map
Map()
constructor
1 | new Map() |
Examples:
1 | const myMap = new Map([ |
特點
- 類似 object 的 key-value 結構,其中 object 的 key 只能是 string, 但 map 的 key 則可以是任何資料型態(object 也可以當 key)。
- Map 資料是有順序的。iterate 的時候會照資料加入的順序去運送 first in first out。
常用 methods
長度
1 | map.size // 4 |
CRUD
1 | // set(key, value) and return Map object |
轉換成可遍歷的形式(Map iterator object, 類似 array)可搭配 for…of
1 | map.keys() // {1, 2, 3, 4} |
Set
Set 類似 array, 可儲存任何類型(primitive values or object references)的唯一值(unique value),元素不可以重複,若存入重複的值則會被忽略。
沒有 index 也沒有 key,Set 用來儲存資料後即作為運算的最小單位,很少取出 Set 中的元素做運算。用來處理數學當中「集合」間的運算。
JavaScript 中,Set 中的元素是有順序的(因為是用 array 做出來的),但在實際運用上通常不在意其元素順序。另外在其他語言(例如 Python, JAVA)中的 Set 是沒有順序的。
當在 Set 中加入新元素時,Set 內部會用 === 來判斷是否有重複值。例外:NaN 會被判斷作是重複的值(雖然 NaN !== NaN)。
Set() constructor
1 | let set = new Set() |
常用方法
CRUD
1 | set.add(element) |