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

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

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

作成日: 更新日:

基本的な使い方

Iterator.prototype.every()メソッドは、JavaScriptのイテレーターに属するインスタンスメソッドです。このメソッドは、イテレーターが持つすべての要素が、指定された特定の条件を満たしているかどうかを効率的に判定するために使用されます。

動作としては、メソッドに引数として渡すコールバック関数(テスト関数)が、イテレーターから順番に取り出される各要素に対して実行されます。このコールバック関数は、現在の要素を受け取り、その要素が条件を満たすかどうかを真偽値(trueまたはfalse)で返します。

もしイテレーター内のすべての要素がコールバック関数のテストに合格し、「true」を返した場合、最終的にIterator.prototype.every()メソッドは「true」を返します。しかし、一つでもテストに合格しない要素が見つかり、コールバック関数が「false」を返した場合は、残りの要素のチェックをすぐに停止し、Iterator.prototype.every()メソッドは直ちに「false」を返します。この早期終了の特性により、大規模なデータセットでも効率的なチェックが可能です。

重要な点として、イテレーターは一度しか要素を消費できません。このメソッドが実行されると、イテレーターの要素はすべて処理されるか、条件を満たさない要素が見つかった時点で消費が停止します。一度消費されたイテレーターは、再度同じ要素を返すことはできませんので、利用する際にはこの特性を理解しておく必要があります。

このメソッドは、例えば、データセット内のすべての値が特定の閾値を超えているか、またはすべての文字列が特定のフォーマットに準拠しているかといった、データ全体の整合性を確認する場面で非常に有効です。

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

構文(syntax)

1const iterableObject = [1, 2, 3];
2const iteratorInstance = iterableObject[Symbol.iterator]();
3
4const allElementsPassTest = iteratorInstance.every((element, index, selfIterator) => {
5  return element > 0;
6}, undefined);

引数(parameters)

callbackFn, thisArg

  • callbackFn: (value: any, index: number, iterator: Iterator) => boolean: イテレータの各要素に対して実行されるコールバック関数。true を返すとループが継続し、false を返すとループが中断されます。
  • thisArg: any: callbackFn が実行される際の this の値。

戻り値(return)

boolean

指定された条件に従い、Iterator.prototype.every() の戻り値の説明を生成します。

イテレーターが生成するすべての要素が、指定されたテスト関数によって実装された条件を満たす場合に true を返します。一つでも満たさない要素が見つかった場合は、すぐに false を返します。

関連コンテンツ