TypedArray.prototype.reduceRight()
reduceRight()
メソッドは、アキュームレーターと型付き配列のそれぞれの値に対して(右から左へ)関数を適用していき、単一の値にまとめます。このメソッドは、Array.prototype.reduceRight()
と同じアルゴリズムです。 TypedArray は、ここでは型付き配列型の一つです。
試してみましょう
構文
js
// アロー関数
reduceRight((accumulator, currentValue) => { /* ... */ } )
reduceRight((accumulator, currentValue, index) => { /* ... */ } )
reduceRight((accumulator, currentValue, index, array) => { /* ... */ } )
reduceRight((accumulator, currentValue, index, array) => { /* ... */ }, initialValue)
// コールバック関数
reduceRight(callbackFn)
reduceRight(callbackFn, initialValue)
// インラインコールバック関数
reduceRight(function(accumulator, currentValue) { /* ... */ })
reduceRight(function(accumulator, currentValue, index) { /* ... */ })
reduceRight(function(accumulator, currentValue, index, array){ /* ... */ })
reduceRight(function(accumulator, currentValue, index, array) { /* ... */ }, initialValue)
引数
callbackFn
-
型付き配列内の各値に対して実行する関数です。
この関数は以下の引数で呼びされます。
accumulator
-
前回のコールバック関数の呼び出しで返された値。または、提供された場合は
initialValue
(下記参照)。 currentValue
-
現在処理されている型付き配列の要素。
index
-
現在処理されている型付き配列要素の添字。
array
-
reduceRight()
が呼び出された型付き配列
initialValue
-
任意。
callbackFn
関数の最初の呼び出しの最初の引数として使用するオブジェクト。
返値
畳み込みによって得られた 1 つの値です。
解説
reduceRight
メソッドは、型付き配列に存在するそれぞれの要素に対して(型付き配列の中の穴は除く)callbackFn
関数を一度ずつ実行します。この関数は、初期値(または直前の callbackFn
呼び出し)、現在の要素の値、現在の添字、反復処理中の型付き配列の 4 つの引数を受け取ります。
reduceRight
のコールバックの呼び出しは、下記のようになります。
js
typedarray.reduceRight((accumulator, currentValue, index, typedarray) => {
// ...
});
最初にコールバック関数が呼び出されたときは、 accumulator
と currentValue
は、2 つの値を一つにまとめます。 reduceRight
の呼び出し時に initialValue
が与えられた場合、 accumulator
は initialValue
に等しくなり、 currentValue
は、型付き配列の最後の値と等しくなります。 initialValue
が与えられなかった場合、 accumulator
は、型付き配列の最後の値と等しくなり、 currentValue
は最後から数えて 2 番目の値と等しくなります。
型付き配列が空で、 initialValue
が与えられなかった場合、 TypeError
が発生します。型付き配列が (位置に関係なく) 一つの要素しか持たず、 initialValue
が与えられなかった場合、もしくは、 initialValue
が与えられたが型付き配列が空の場合、 callbackFn
関数の呼び出しなしで、単独の値が返されることになります。
例
配列内のすべての値を合計する
js
const total = new Uint8Array([0, 1, 2, 3]).reduceRight((a, b) => a + b);
// total === 6
仕様書
Specification |
---|
ECMAScript Language Specification # sec-%typedarray%.prototype.reduceright |
ブラウザーの互換性
BCD tables only load in the browser