このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Iterator.prototype.every()
Baseline 2025Newly available
Since March 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
every() はIterator インスタンスのメソッドで、Array.prototype.every() と似ています。このイテレーターによって生成されたすべての要素が、指定された関数によって実装された試験に合格するかどうかを確認します。論理値を返します。
In this article
構文
every(callbackFn)引数
callbackFnこのイテレーターによって生成された各要素に対して実行する関数。要素が試験に合格したことを示す真値、またはそうでなければ偽値を返さなければなりません。この関数は、以下の引数とともに呼び出されます。
返値
callbackFn がすべての要素に対して真値を返した場合はtrue です。そうでなければfalse です。
解説
every() はイテレーターを反復処理し、各要素に対して一度ずつcallbackFn 関数を呼び出します。 コールバック関数が偽値を返した場合は、ただちにfalse を返します。そうでない場合は、イテレーターの最後まで反復処理を行い、true を返します。every() がfalse を返した場合、そのイテレーターのreturn() メソッドを呼び出して終了します。
イテレーターヘルパーの主な利点は、配列メソッドよりも「遅延的」であるということです。つまり、要求されたときにのみ次の値を生成するという意味です。これにより、不必要なコンピューター処理を避けることができ、また無限イテレーターでも使用することができます。無限イテレーターでは、every() は最初の偽値が得られるとすぐにfalse を返します。もしcallbackFn が常に真値を返した場合、メソッドは終了しません。
例
>every() の使用
function* fibonacci() { let current = 1; let next = 1; while (true) { yield current; [current, next] = [next, current + next]; }}const isEven = (x) => x % 2 === 0;console.log(fibonacci().every(isEven)); // falseconst isPositive = (x) => x > 0;console.log(fibonacci().take(10).every(isPositive)); // trueconsole.log(fibonacci().every(isPositive)); // Never completesevery() を呼び出すと、メソッドが早期に終了した場合でも、常にその元となるイテレーターが閉じられます。 イテレーターが未完了の状態で残されることはありません。
const seq = fibonacci();console.log(seq.every(isEven)); // falseconsole.log(seq.next()); // { value: undefined, done: true }仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-iterator.prototype.every> |