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

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

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

作成日: 更新日:

基本的な使い方

Iterator.prototype.flatMap()メソッドは、イテレーターの各要素に対して指定されたマッピング関数を適用し、その関数が返す複数のイテレーター(または反復可能オブジェクト)を平坦化して、新しいイテレーターを生成するメソッドです。このメソッドの主な目的は、イテレーターの各要素を変換する際に、変換の結果として複数の要素が返される可能性があり、それらを一つのシーケンスとして処理したい場合にあります。例えば、文字列の配列を単語のイテレーターに変換し、すべての単語を一つの連続したイテレーターとして扱いたい場合などに有効です。

従来のmap()メソッドが各要素を1対1で変換するのに対し、flatMap()は変換後の結果が複数の要素を生成する場合に、それらを自動的に平坦化する追加のステップを含んでいます。これにより、ネストされた(入れ子になった)イテレーターや反復可能オブジェクトから、よりシンプルな単一のイテレーターを効率的に生成できます。

このメソッドは引数として、各要素に適用するコールバック関数を受け取ります。コールバック関数は現在の要素を引数として受け取り、新しいイテレーターまたは反復可能オブジェクトを返します。また、オプションでコールバック関数内でthisとして使用する値を指定することも可能です。flatMap()は最終的に、変換され、かつ平坦化された要素を持つ新しいイテレーターを返します。これは、データの前処理や変換において、複雑な多次元構造を持つデータを単一の次元に統一する際に非常に便利な機能です。

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

構文(syntax)

1anIterator.flatMap((element) => {
2  return /* an iterable or iterator derived from element */;
3});

引数(parameters)

mapper, thisArg

  • mapper: (Function) 各要素に適用する変換関数。この関数は、要素の値、インデックス、およびイテレータ自体を引数として受け取ります。
  • thisArg: (any) mapper 関数が呼び出される際に this として使用される値。

戻り値(return)

Iterator

flatMap()メソッドは、各要素に関数を適用し、その結果として得られるイテレーターの要素をすべて1つの新しいイテレーターに結合して返します。

関連コンテンツ