LoginSignup
0
1

TypeScriptにおける反復可能なオブジェクト:`Map` と `Set`

Posted at

はじめに

JavaScriptおよびTypeScriptでは、反復可能なオブジェクトを使ってデータの集合を効率的に管理できます。反復可能なオブジェクトには、MapSetがあります。

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から削除します。
  • clearSetのすべての要素を削除します。
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から削除します。
  • clearMapのすべてのエントリーを削除します。
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

反復可能なオブジェクトの共通点

SetMapを含む反復可能なオブジェクトは、Symbol.iteratorプロパティを持ち、for...of構文を使用してその要素を順番に反復処理することができます。これにより、データの集合に対して簡単かつ効率的に操作を行うことができます。

for...of構文の利点

  • シンプルで読みやすいfor...of構文は、従来のforループよりもシンプルで読みやすいコードを実現します。
  • 汎用性:配列、文字列、SetMapなど、すべての反復可能なオブジェクトに対して使用できます。

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

まとめ

SetMapは、TypeScriptおよびJavaScriptでデータを管理するための強力なツールです。Setは一意の値の集合を保持し、Mapはキーと値のペアを管理します。これらのデータ構造は反復可能であり、for...of構文を使用して効率的に反復処理できます。これにより、コードの可読性と効率が向上します。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1