【ES6】Set和Map資料結構
阿新 • • 發佈:2019-02-13
Set
1 類似於陣列,但成員的值都是唯一的
2 初始化:
let set=new Set();
let set1=new Set([1,2,3,4,4]);
//去除陣列重複成員:
[...new Set(array)]
3 向set加入值時不會發生型別轉換,因此5和‘5‘是不同的值;但是在set內部,只能新增一個NaN;傳入兩個空物件被認為是兩個值。
4 set例項的屬性和方法:
屬性:
- Set.prototype.constructor
- Set.prototype.size:返回set例項的成員總數。
方法: - add():返回set本身
- delete():刪除某個值,返回布林值
- has():表示是否是set成員
- clear():清除所有成員
5 遍歷操作
- keys():返回鍵名的遍歷器
- values():
- entries():返回鍵值對
- forEach():使用回撥函式遍歷每個成員
- 列表內容
WeakSet
1 成員只能是物件,而不能是其他成員的值。
2 物件都是弱引用,即垃圾回收機制不考慮weakset對該物件的引用,也就是說,如果其他物件都不再引用該物件,那麼垃圾回收機制會自動回收該物件佔有的記憶體。
因此weakSet不可遍歷。
Map
map結構提供了“值-值“的對應,是一種更完善的hash
屬性和方法:
- size
- set(key, value)
- get(key)
- has(key)
- delete(key)
- clear()
遍歷:
- keys()
- values()
- entries()
- forEach()