Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Iterator::Iterator.prototype.mapインスタンスメソッドの使い方

Iterator.prototype.map()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Iterator.prototype.map()メソッドは、呼び出されたイテレータの各要素に対して、指定されたコールバック関数を実行し、その結果を要素とする新しいイテレータを生成するメソッドです。これは、既存のイテレータの要素を変換して、別の形式の要素を持つイテレータが必要な場合に特に有用です。

このメソッドは、引数としてコールバック関数(callbackFn)を受け取ります。このコールバック関数は、元のイテレータが要素を生成するたびに、その要素に対して実行されます。コールバック関数は通常、現在の要素の値と、オプションでそのインデックスを引数として受け取ることができます。map()メソッドは、元のイテレータを直接変更することなく、コールバック関数の戻り値から構成される新しいイテレータを返します。

Array.prototype.map()と類似していますが、Iterator.prototype.map()はイテレータに対して動作し、新しい要素が必要になるまで実際の変換処理を遅延させる「遅延評価(lazy evaluation)」を行う点が大きな特徴です。この特性により、無限に続く可能性のあるイテレータに対してもメモリ効率良く、必要なときにだけ処理を実行することができます。結果として、イテレータの要素を効率的かつ柔軟に変換する手段を提供します。

公式リファレンス: Iterator.prototype.map()

構文(syntax)

1const originalIterator = [1, 2, 3].values();
2const newIterator = originalIterator.map(element => {
3  return element * 2;
4});

引数(parameters)

callbackFn

  • callbackFn: function: 各要素に対して実行されるコールバック関数。3つの引数を受け取ります:
    • currentValue: any: 配列の現在の要素。
    • index: number: 配列の現在の要素のインデックス。
    • array: any[]: mapが呼び出された配列。 この関数は、変換された新しい要素を返す必要があります。

戻り値(return)

Iterator

このメソッドは、元のイテレータの各要素に対して指定された関数を適用し、その結果を新しいイテレータとして返します。

関連コンテンツ