Matriz de JavaScript reduceRight ()

El método JavaScript Array reduceRight () ejecuta una función reductora en cada elemento de la matriz y la aplica contra un acumulador.

La sintaxis del reduceRight()método es:

 arr.reduceRight(callback(accumulator, currentValue), initialValue)

Aquí, arr es una matriz.

Parámetros de reduceRight ()

El reduceRight()método incluye:

  • callback: la función que se ejecutará en cada elemento de la matriz. Toma en:
    • acumulador: acumula los valores de retorno de la devolución de llamada. Es initialValuepara la primera llamada si se proporciona,
    • currentValue: el elemento actual que se pasa de la matriz.
  • initialValue (opcional): un valor al que se le pasará callback()en la primera llamada. Si no se proporciona, el último elemento actúa como acumulador en la primera llamada y callback()no se ejecutará en él.

Nota: Llamar reduceRight()a una matriz vacía sin initialValue arrojará TypeError.

Valor de retorno de reduceRight ()

  • Devuelve el valor resultante después de reducir la matriz.

Notas :

  • reduceRight() ejecuta la función dada para cada valor de derecha a izquierda.
  • reduceRight() no cambia la matriz original.
  • Casi siempre es más seguro proporcionarlo initialValue.

Ejemplo 1: Suma de todos los valores de la matriz

 const numbers = (1, 2, 3, 4, 5, 6); function sum_reducer(accumulator, currentValue) ( return accumulator + currentValue; ) let sum = numbers.reduceRight(sum_reducer); console.log(sum); // 21 // using arrow function let summation = numbers.reduceRight( (accumulator, currentValue) => accumulator + currentValue ); console.log(summation); // 21

Salida

 21 21

Ejemplo 2: Restar números en una matriz

 const numbers = (50, 300, 20, 100, 1800); // subtract all numbers from last number // since 1st element is called as accumulator rather than currentValue // 1800 - 100 - 20 - 300 - 50 let difference = numbers.reduceRight( (accumulator, currentValue) => accumulator - currentValue ); console.log(difference); // 1330 const expenses = (1800, 2000, 3000, 5000, 500); const salary = 15000; // function that subtracts all array elements from given number // 15000 - 500 - 5000 - 3000 - 2000 - 1800 let remaining = expenses.reduceRight( (accumulator, currentValue) => accumulator - currentValue, salary ); console.log(remaining); // 2700

Salida

 1330 2700

Este ejemplo explica claramente la diferencia entre pasar un initialValue y no pasar un initialValue.

Ejemplo 3: crear funciones compuestas

 // create composite functions const composite = (… args) => (initialArg) => args.reduceRight((acc, fn) => fn(acc), initialArg); const sqrt = (value) => Math.sqrt(value); const double = (value) => 2 * value; const newFunc = composite(sqrt, double); // ( 32 * 2 ) ** 0.5 let result = newFunc(32); console.log(result); // 8

Salida

 8

Sabemos que la composición de funciones es la forma en que el resultado de una función se pasa a otra función. La ejecución ocurre de derecha a izquierda, por lo que podemos aprovechar la reduceRight()función.

En este ejemplo, hemos creado una composite()función que acepta un número arbitrario de argumentos. Esta función devuelve otra función que toma initialArgy devuelve este valor reducido aplicándolo contra funciones dadas de derecha a izquierda.

Lectura recomendada: JavaScript Array reduce ()

Articulos interesantes...