TypedArray.prototype.reduce()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016年9月.
reduce() は TypedArray インスタンスのメソッドで、型付き配列のそれぞれの要素に対して、ユーザーが提供した「縮小」コールバック関数を呼び出します。その際、直前の要素における計算結果の返値を渡します。型付き配列のすべての要素に対して縮小関数を実行した結果が単一の値が最終結果になります。このメソッドは、Array.prototype.reduce()と同じアルゴリズムです。
試してみましょう
const uint8 = new Uint8Array([0, 1, 2, 3]);
function sum(accumulator, currentValue) {
return accumulator + currentValue;
}
console.log(uint8.reduce(sum));
// Expected output: 6
構文
reduce(callbackFn)
reduce(callbackFn, initialValue)
引数
callbackFn-
型付き配列の各要素に対して実行される関数です。その返値は、次に
callbackFnを呼び出す際のaccumulator引数の値になります。最後の呼び出しでは、返値はreduce()の返値となります。この関数は以下の引数で呼び出されます。accumulator-
前回
callbackFnを呼び出した結果の値。最初の呼び出しでは、後でinitialValueを指定した場合はその値になり、指定されなかった場合はarray[0]になります。 currentValue-
現在の要素の値。最初の呼び出しでは、
initialValueを指定した場合はarray[0]となり、指定しなかった場合はarray[1]となります。 currentIndex-
型付き配列の
currentValueを入力するインデックスの位置。最初の呼び出しでinitialValueを指定した場合は0、そうでない場合は1となります。 array-
reduce()が呼び出された型付き配列。
initialValue省略可-
コールバックが最初に呼び出された時に
accumulatorが初期化される値です。initialValueが指定された場合、callbackFnは配列の最初の値をcurrentValueとして実行を開始します。 もしinitialValueが指定されなかった場合、accumulatorは配列の最初の値に初期化され、callbackFnは配列の 2 つ目の値をcurrentValueとして実行を開始します。この場合、配列が空であれば(accumulatorとして返す最初の値がなければ)エラーが発生します。
返値
型付き配列全体にわたって「縮小」コールバック関数を実行した結果の値です。
例外
TypeError-
型付き配列に要素がなく、かつ
initialValueが提供されなかった場合に発生します。
解説
詳細については、 Array.prototype.reduce() をご覧ください。このメソッドは汎用的ではなく、型付き配列インスタンスに対してのみ呼び出すことができます。
例
>配列内のすべての値を合計する
const total = new Uint8Array([0, 1, 2, 3]).reduce((a, b) => a + b);
// total === 6
仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-%typedarray%.prototype.reduce> |