新型態物件 - Map & Set

  • Set:ES6新的資料結構,類似於陣列,但元素中並不會有重複的值。
    Set物件的size屬性回傳Set物件的元素總數
    Set物件的方法有兩大類,一類是用於操作元素的方法, 另一種是遍歷的方法:

    • add(value) : 新增值,回傳Set物件本身
    • delete(value) : 刪除值,回傳boolean值,表示刪除是否有成功
    • has(value) : 回傳boolean值,檢查是否值是否為Set物件的元素之一
    • clear() : 清除所有元素,沒有回傳值
      -----------------------------------------------
    • keys() : 回傳鍵名
    • values() : 回傳鍵值
    • entries() : 回傳鍵值對
    • forEach() : 遍歷每個成員 由於Set物件沒有鍵名,只有鍵值,所以使用keys()跟values()結果相同


    由於Set的特性,可以實現聯集、交集、差集的運算

  • Map: javascript以往的物件,本質上是鍵值對的集合,但限制是只能用字串作為鍵名的型別。因此ES6提供Map型別,與物件的差別在於,鍵名的型別範圍並不拘
    Map物件有以下屬性:

    1. size : 回傳物件的成員個數
    2. set(key, value) : 建立key及其對應的value,回傳Map物件本身
    3. get(key) : 取得key的value,如果找不到則回傳undefined
    4. has(key) : 回傳boolean值,檢查是否key是否存在Map物件中
    5. delete(key) : 刪除key-value,回傳boolean值,表示刪除是否有成功
    6. clear() : 清除所有元素,沒有回傳值

而遍歷的方法同Set物件。