2022年3月10日 [ES2015] Map/Set - Set (JavaScript Primer)
復習
WeakMapの認識が甘かった箇所
- Mapと違いキーには参照型のオブジェクトのみ使用できるためプリミティブ型だとエラーになります。
ラッパーオブジェクト
- プリミティブ型に対してプロパティを呼び出すタイミングで働きます。
Set
Setはセット型のコレクションを扱うためのビルトインオブジェクトです。 セットは重複する値がないことが保証されたコレクションのことを言います。
Setは追加した値を列挙できるので、値が重複しないことを保証する配列のようなものとしてよく使われます。
値の重複がなく配列のインデックスで要素にアクセスできないものというイメージです。
const set = new Set(); console.log(set.size); // => 0
文字列もイテラブルのためセットとして扱うことも出来ます。 以下の例では"o"が重複しているためsizeが4として保存されています。
const set = new Set("yanoooo"); console.log(set.size); // => 4 console.log(set); // => [object Set] ←中身は 'y','a','n','o'となっていてpaizeでは出力されます。
set自体は以下のように状態を持っていることがわかります。
はじめから用意されているイテラブルなオブジェクト
- Array
- String
- iterator
- ジェネレータ
- Arguments
- TypedArray
- Map
- Set