Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Since March 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
reduce() は Iterator インスタンスのメソッドで、 Array.prototype.reduce と似ています。イテレーターによって生成されたそれぞれの要素に対して、ユーザーが指定した「縮約」コールバック関数を実行し、前の要素の計算結果を返値として渡します。すべての要素に対して縮約を実行した最終結果は、単一の値となります。
イテレーターによって生成される各要素に対して実行される関数。その返値は、次の callbackFn の反復処理において accumulator引数の値とみなされます。最後の反復処理では、返値は reduce() の返値となります。この関数は、次の引数とともに呼び出されます。
accumulator前回 callbackFn を呼び出した際に得られた値。最初の呼び出しでは、後者が指定されている場合はその値が initialValue となり、そうでない場合はイテレーターの最初の要素がその値となります。
currentValue現在の要素の値。最初の呼び出しでは、 initialValue を指定している場合はその値がイテレーターの最初の要素となり、指定していない場合は 2 つ目の要素となります。
currentIndexcurrentValue のインデックス位置。最初の呼び出しでは、 initialValue を指定した場合はその値が 0、指定しない場合は 1 となります。
initialValue 省略可コールバックが最初に呼び出された時点で accumulator が初期化される値。 initialValue が指定されている場合、 callbackFn は最初の要素を currentValue として実行を開始します。 initialValue が指定されていない場合、 accumulator は最初の要素で初期化され、 callbackFn は 2 つ目の要素を currentValue として実行を開始します。 この場合、イテレーターが空の場合(つまり、 accumulator として返す最初の値がない場合)、エラーが発生します。
「縮約」コールバック関数をイテレーター全体に対して完全に実行した結果の値です。
イテレーターに要素が含まれておらず、 initialValue が指定されていない場合に発生します。
reduce() がどのように動作するのかの詳細については、 Array.prototype.reduce() を参照してください。 他のほとんどのイテレーターヘルパーメソッドとは異なり、これは遅延的ではないため、無限イテレーターでは動作しません。
次の例では、フィボナッチ数列の項目を生成するイテレーターを作成し、最初の 10 項目を合計します。
| ECMAScript® 2027 Language Specification # sec-iterator.prototype.reduce |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2026年2月13日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.