JavaScriptデータ構造の設定

Setデータ構造を使用すると、コンテナ、オブジェクトのコレクション、またはプリミティブ型(文字列、数値、ブール値)にデータを追加できます。これは、値がマップキーとして使用され、マップ値が常にであるマップと考えることができます。ブール値の真。

セットとは

Setデータ構造を使用すると、コンテナにデータを追加できます。

ECMAScript6(ES2015とも呼ばれます)は、Setデータ構造をJavaScript世界と一緒に地図

セットは、オブジェクトまたはプリミティブ型(文字列、数値、またはブール値)のコレクションであり、値がマップキーとして使用され、マップ値が常にブール値であるマップと考えることができます。

セットを初期化する

セットは、以下を呼び出すことによって初期化されます。

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 }イテレータが終了するまでオブジェクトを作成し、その時点でdoneですtrue

セットでforEach()メソッドを使用することもできます。

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

または、for..ofループでセットを使用することもできます。

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

セットを値で初期化する

セットは、値のセットで初期化できます。

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

配列に変換

セットキーを配列に変換します

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

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

ウィークセット

WeakSetは特別な種類のセットです。

セットでは、アイテムがガベージコレクションされることはありません。代わりに、WeakSetを使用すると、すべてのアイテムを自由にガベージコレクションできます。 WeakSetのすべてのキーはオブジェクトです。このオブジェクトへの参照が失われると、値はガベージコレクションされる可能性があります。

主な違いは次のとおりです。

  1. WeakSetを反復処理することはできません
  2. WeakSetからすべてのアイテムをクリアすることはできません
  3. サイズは確認できません

WeakSetは通常、フレームワークレベルのコードで使用され、次のメソッドのみを公開します。

  • 追加()
  • has()
  • delete()

私の無料ダウンロードJavaScriptビギナーズハンドブック


その他のjsチュートリアル: