set集合概念:
- 一個無 重複元素的列表
- 主要應用場景:檢測給定值的某個集合是否存在
map集合概念:
- 集合內含多組鍵值對
- 主要應用場景:緩存 頻繁取用的數據,獲取已存的信息
ES5用對象模擬set集合和map集合
存在如下限制:
- 對象屬性必須是字符串
- 對象做爲屬性名存在問題
- 屬性值是假值
ES6中set和map
一、set
- 建立set集合 new Set()
- 向集合中添加數據 set.add()
- size屬性獲取集合元素數量 set.size
set的特性
一、不會對存值強制類型轉換
二、屢次調用add方法並傳入相同的值做爲參數,後續調用將被忽略
三、可用數組初始化Set集合,會過濾重複值,保證集合元素惟一
注意:
Set構造函數可接受全部可迭代的對象做爲參數,數組、set集合、map集合都是可迭代的數組
方法
- has() 檢測Set集合是否存在某個值
- delete() 移除Set集合中某一個元素
- clear() 一處集合中全部元素
forEach方法
forEach回調函數接收3個參數緩存
- set集合中下一個索引的位置
- 與第一個參數同樣的值
- 被遍歷的set集合自己
forEach方法第二個參數與數組同樣,須要在回調函數中使用this,可將它做爲第二個參數傳入forEach方法
若使用箭頭函數,無需將this做爲參數傳入回調。函數
set集合轉爲數組
數組轉setthis
let set = new Set([1,2,3])
set 轉數組code
array = [...set]
可應用場景:過濾重複值,最後輸出無重複的新數組對象
二、weakSet
三、map
四、weakMap