設置JavaScript數據結構

Set數據結構允許將數據添加到容器,對像或原始類型(字符串,數字或布爾值)的集合中,並且您可以將其視為將值用作映射鍵的Map,其中map值始終為布爾值true。

什麼是套裝

Set數據結構允許將數據添加到容器。

ECMAScript6(也稱為ES2015)將Set數據結構引入了JavaScript世界,以及地圖

Set是對像或原始類型(字符串,數字或布爾值)的集合,您可以將其視為一個Map,其中將值用作映射鍵,而map值始終為布爾值true。

初始化集合

通過以下方式初始化Set:

const s = new Set()

將項目添加到集合

您可以使用add方法:

s.add('one')
s.add('two')

集合僅存儲唯一元素,因此調用s.add('one')多次不會添加新項目。

您不能同時將多個元素添加到集合中。你需要打電話add()多次。

檢查項目是否在集合中

一旦元素進入集合,我們就可以檢查集合是否包含它:

s.has('one') //true
s.has('three') //false

從“按鍵設置”中刪除項目

使用delete()方法:

s.delete('one')

確定集合中的項目數

使用size財產:

s.size

刪除集合中的所有項目

使用clear()方法:

s.clear()

迭代集中的項目

使用keys()或者values()方法-它們等效:

for (const k of s.keys()) {
  console.log(k)
}

for (const k of s.values()) { console.log(k) }

entries()方法返回一個迭代器,您可以像這樣使用它:

const i = s.entries()
console.log(i.next())

呼喚i.next()將每個元素返回為{ value, done = false }對象,直到迭代器結束為止donetrue

您還可以在集合上使用forEach()方法:

s.forEach(v => console.log(v))

或者您也可以在for..of循環中使用該集合:

for (const k of s) {
  console.log(k)
}

用值初始化集合

您可以使用一組值來初始化Set:

const s = new Set([1, 2, 3, 4])

轉換為數組

將Set鍵轉換為數組

const a = [...s.keys()]

// or const a = […s.values()]

弱集

WeakSet是一種特殊的Set。

在Set中,永遠不會垃圾收集項目。相反,WeakSet允許自由地對其所有項目進行垃圾回收。 WeakSet的每個鍵都是一個對象。當對該對象的引用丟失時,可以對該值進行垃圾回收。

主要區別如下:

  1. 您無法遍歷WeakSet
  2. 您無法從WeakSet中清除所有項目
  3. 你不能檢查它的大小

WeakSet通常由框架級代碼使用,並且僅公開以下方法:

  • 添加()
  • 已()
  • 刪除()

免費下載我的JavaScript初學者手冊


更多js教程: