「Keyed collections(Map・Set・WeakMap・WeakSet)」学習ワークブック

javascrpit JavaScript
スポンサーリンク

JavaScript「Keyed Collections」ワークブック構成

🏁 第1章:MapとSetの基本(初級)

💡 学習ポイント

  • オブジェクトとの違い
  • MapSet の作り方・基本操作(追加・削除・取得・確認)

🧩 練習問題(例)

  1. Map を作成して、キー "name""Halu" をセットしよう。
  2. Set1, 2, 2, 3 を追加して、出力結果を確認しよう。
  3. Map に登録されたキーの一覧を for...of で表示してみよう。

🔍 解説

  • Map は「キーにあらゆる値(オブジェクトもOK)」を使える。
  • Set は「重複なしコレクション」。順序も保持される。

⚙️ 第2章:MapとSetの応用(中級)

💡 学習ポイント

  • Map の初期化(配列から)
  • 反復処理:forEach, entries(), keys(), values()
  • Set のユニーク性を活かした重複削除

🧩 練習問題(例)

  1. 配列 [['a', 1], ['b', 2]] から Map を作ろう。
  2. Set を使って [1,2,2,3,3,3] の重複を削除する関数を作ろう。
  3. MapArray.from() で配列に変換して出力してみよう。

🔍 解説

  • Map は配列のように初期化できる。
  • Set は配列との相互変換が簡単(Array.from(set))。

🧠 第3章:WeakMapとWeakSet(上級)

💡 学習ポイント

  • 弱い参照」の仕組み
  • ガーベジコレクションと自動メモリ解放
  • 主な用途(キャッシュ・プライベートデータ管理)

🧩 練習問題(例)

  1. WeakMap を作って、オブジェクトをキーに値を登録しよう。
  2. そのキーを null にしたあと、WeakMap から削除される理由を説明しよう。
  3. WeakSet を使って「すでに処理済みのオブジェクト」を記録するコードを書こう。

🔍 解説

  • WeakMapWeakSetキーにオブジェクトしか使えない
  • 要素数を数えるメソッドがないのは、ガーベジコレクションを妨げないため。

🧩 第4章:実践チャレンジ(上級+)

💡 学習ポイント

  • MapSet を組み合わせて使う
  • 実際のデータ管理パターンを体験

💻 演習

「ユーザー管理システム」を MapSet で作る。

// ユーザーごとに権限を登録する Map
const roles = new Map();
roles.set('Alice', new Set(['read', 'write']));
roles.set('Bob', new Set(['read']));

// Bob に 'write' 権限を追加
roles.get('Bob').add('write');
console.log(roles);
JavaScript

発展課題

  • Map + WeakMap を使って「ユーザー情報(公開/非公開)」を分けて管理してみよう。

最後に(まとめ)

コレクション主な特徴キー重複主な用途
Mapキーに任意の値何でもOKデータマッピング
Set値の一意集合N/A不可重複排除・タグ管理
WeakMap弱参照キー付きMapオブジェクトのみキャッシュ・隠しデータ
WeakSet弱参照集合オブジェクトのみ不可処理済み管理
タイトルとURLをコピーしました