はじめに
JavaScriptおよびTypeScriptでは、反復可能なオブジェクトを使ってデータの集合を効率的に管理できます。反復可能なオブジェクトには、Map
とSet
があります。
Set
オブジェクト
Set
は一意の値の集合を保持するデータ構造です。同じ値を重複して持つことができません。
基本的な使い方
Set
の作成
let mySet: Set<number> = new Set<number>();
mySet.add(1);
mySet.add(2);
mySet.add(2); // 重複する値は無視される
mySet.add(3);
console.log(mySet); // Set { 1, 2, 3 }
Set
の反復処理
for...of
構文を使用して、Set
内のすべての要素を反復処理できます。
let mySet: Set<number> = new Set([1, 2, 3, 4, 5]);
for (let value of mySet) {
console.log(value);
}
// 出力: 1, 2, 3, 4, 5
その他のメソッド
-
has
:指定した値がSet
に存在するかどうかをチェックします。 -
delete
:指定した値をSet
から削除します。 -
clear
:Set
のすべての要素を削除します。
console.log(mySet.has(3)); // true
mySet.delete(3);
console.log(mySet.has(3)); // false
mySet.clear();
console.log(mySet.size); // 0
Map
オブジェクト
Map
はキーと値のペアを保持するデータ構造です。各キーは一意であり、任意の値をキーとして使用できます。
基本的な使い方
Map
の作成
let myMap: Map<string, number> = new Map<string, number>();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.set("three", 3);
console.log(myMap); // Map { 'one' => 1, 'two' => 2, 'three' => 3 }
Map
の反復処理
for...of
構文を使用して、Map
内のすべてのキーと値のペアを反復処理できます。
let myMap: Map<string, number> = new Map([
["one", 1],
["two", 2],
["three", 3]
]);
for (let [key, value] of myMap) {
console.log(`${key} = ${value}`);
}
// 出力:
// one = 1
// two = 2
// three = 3
その他のメソッド
-
get
:指定したキーに対応する値を取得します。 -
has
:指定したキーがMap
に存在するかどうかをチェックします。 -
delete
:指定したキーとその値をMap
から削除します。 -
clear
:Map
のすべてのエントリーを削除します。
console.log(myMap.get("two")); // 2
console.log(myMap.has("three")); // true
myMap.delete("three");
console.log(myMap.has("three")); // false
myMap.clear();
console.log(myMap.size); // 0
反復可能なオブジェクトの共通点
Set
やMap
を含む反復可能なオブジェクトは、Symbol.iterator
プロパティを持ち、for...of
構文を使用してその要素を順番に反復処理することができます。これにより、データの集合に対して簡単かつ効率的に操作を行うことができます。
for...of
構文の利点
-
シンプルで読みやすい:
for...of
構文は、従来のfor
ループよりもシンプルで読みやすいコードを実現します。 -
汎用性:配列、文字列、
Set
、Map
など、すべての反復可能なオブジェクトに対して使用できます。
例
const numbers = [1, 2, 3, 4, 5];
for (let num of numbers) {
console.log(num);
}
// 出力: 1, 2, 3, 4, 5
const mySet = new Set(["apple", "banana", "cherry"]);
for (let fruit of mySet) {
console.log(fruit);
}
// 出力: apple, banana, cherry
まとめ
Set
とMap
は、TypeScriptおよびJavaScriptでデータを管理するための強力なツールです。Set
は一意の値の集合を保持し、Map
はキーと値のペアを管理します。これらのデータ構造は反復可能であり、for...of
構文を使用して効率的に反復処理できます。これにより、コードの可読性と効率が向上します。