reduceRight
The reduceRight() method works like reduce() but iterates through the array from right to left. It is useful for composing functions, rebuilding a structure from the end, or processing a stack.
Interactive example
Syntax
Classic signature
typescript
function reduceRight<
GenericInput extends readonly unknown[],
GenericReduceFrom extends number | string | bigint | boolean | ArrayReduceFromResult,
GenericExit extends ArrayReduceExit = ArrayReduceExit<never>
>(
input: GenericInput,
startValue: GenericReduceFrom,
theFunction: (
params: ArrayReduceFunctionParams<
GenericInput[number],
ArrayReduceFromValue<GenericReduceFrom>
>
) => ArrayReduceNext<ArrayReduceFromValue<GenericReduceFrom>> | GenericExit
): ArrayReduceFromValue<GenericReduceFrom> | (IsEqual<GenericExit, ArrayReduceExit> extends true ? never : GenericExit["-exit"])Curried signature
typescript
function reduceRight<
GenericInput extends readonly unknown[],
GenericReduceFrom extends number | string | bigint | boolean | ArrayReduceFromResult,
GenericExit extends ArrayReduceExit = ArrayReduceExit<never>
>(
startValue: GenericReduceFrom,
theFunction: (
params: ArrayReduceFunctionParams<
GenericInput[number],
ArrayReduceFromValue<GenericReduceFrom>
>
) => ArrayReduceNext<ArrayReduceFromValue<GenericReduceFrom>> | GenericExit
): (
input: GenericInput
) => ArrayReduceFromValue<GenericReduceFrom> | (IsEqual<GenericExit, ArrayReduceExit> extends true ? never : GenericExit["-exit"])Parameters
Identical to those of reduce, but the iteration starts with the last element of the array.
In particular:
params.selfexposes the full array (handy for knowing the length or comparing an index).params.nextPush()adds values tolastValuewhen it is an array, without needing to callnext()after apush.
Return value
The result of the accumulation from right to left (via next(), nextWithObject(), or nextPush()), or the value passed to exit() if an early exit occurs.
