1. 程式人生 > >【ES6】Set和Map資料結構

【ES6】Set和Map資料結構

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()