【JavaScript ECMAScript】Map::Map.prototype[Symbol.iterator]インスタンスメソッドの使い方
Map.prototype[Symbol.iterator]()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Map.prototypeSymbol.iteratorメソッドは、JavaScriptのMapオブジェクトに格納された要素を反復処理するためのイテレーターオブジェクトを返すメソッドです。Mapオブジェクトはキーと値のペアの集合ですが、このメソッドを使用することで、それらのペアを順番に取り出すことができるようになります。
具体的には、このメソッドが返すイテレーターオブジェクトは、Map内に存在する各エントリ(キーと値のペア)を、[キー, 値]という形式の配列として順に生成します。この処理は、Mapに要素が追加された際の挿入順序に従って行われます。
JavaScriptにおいて、[Symbol.iterator]プロパティに定義されたメソッドは、オブジェクトが反復可能(iterable)であることを示します。そのため、Mapオブジェクトに対してfor...ofループを使用したり、分割代入やスプレッド構文(例: [...myMap])を利用してMapの要素を操作したりする際に、このMap.prototype[Symbol.iterator]()メソッドが内部的に自動で呼び出されます。
このメソッドが提供するイテレーターは、Map.prototype.entries()メソッドが返すイテレーターと全く同じ挙動を示します。これにより、Mapのデータを柔軟かつ効率的に扱え、他の反復可能なデータ構造と同様の一貫した方法で処理することが可能になります。
構文(syntax)
1const myMap = new Map(); 2myMap.set('key1', 'value1'); 3myMap.set('key2', 'value2'); 4 5for (const [key, value] of myMap) { 6 console.log(`キー: ${key}, 値: ${value}`); 7}
引数(parameters)
引数なし
引数はありません
戻り値(return)
イテレーター
Map.prototypeSymbol.iterator は、Map オブジェクトの各要素を順に取得するためのイテレーターを返します。このイテレーターは、next() メソッドを呼び出すことで、キーと値のペアを格納したオブジェクトを一つずつ生成します。