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

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

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

作成日: 更新日:

基本的な使い方

Iterator.prototype.find()メソッドは、イテレータが生成する要素の中から、特定の条件に合致する最初の要素を探索し、取得するために使用されるメソッドです。

このメソッドは、引数としてコールバック関数(テスト関数とも呼ばれます)を受け取ります。find()メソッドは、イテレータから要素を一つずつ順番に取り出し、その取り出した要素を引数としてコールバック関数に渡して実行します。コールバック関数は、渡された要素が探している条件を満たすかどうかを判定し、条件を満たす場合はtrueを、満たさない場合はfalseを返さなければなりません。

find()メソッドは、コールバック関数がtrueを返した最初の要素を見つけた時点で、その要素を自身の戻り値として即座に返します。このとき、イテレータのそれ以降の要素は処理されません。もしイテレータのすべての要素を検査しても、コールバック関数が一度もtrueを返さなかった場合、つまり条件を満たす要素が一つも見つからなかった場合は、undefinedが戻り値として返されます。

この機能により、イテレータ内の大規模なデータセットからでも、必要な要素を効率的に見つけ出すことが可能です。ただし、find()メソッドはイテレータの要素を消費しながら処理を進めるため、一度使用するとそのイテレータインスタンスからは消費された要素を再取得できない点に注意が必要です。

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

構文(syntax)

1const myIterator = [1, 2, 3, 4, 5][Symbol.iterator]();
2
3const result = myIterator.find((element, index, self) => {
4  return element > 3;
5}, null);

引数(parameters)

predicate, thisArg

  • predicate: function: 各要素に対して実行される、テスト関数。trueを返した最初の要素の値を返します。
  • thisArg: any: predicate関数を実行する際にthisとして使用される値。

戻り値(return)

any | undefined

Iterator.prototype.find() メソッドは、イテレーターの各要素に対して指定されたテスト関数を実行し、テスト関数が true を返した最初の要素を返します。該当する要素が見つからなかった場合は undefined を返します。

関連コンテンツ