Array Javascript ReduzirRight ()

O método ReduzirRight () de Array de JavaScript executa uma função redutora em cada elemento da matriz e a aplica em um acumulador.

A sintaxe do reduceRight()método é:

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

Aqui, arr é um array.

Parâmetros reduzirRight ()

O reduceRight()método inclui:

  • retorno de chamada - a função a ser executada em cada elemento da matriz. Inclui:
    • acumulador - acumula os valores de retorno do retorno de chamada. É initialValuepara a primeira chamada, se fornecida,
    • currentValue - O elemento atual que está sendo passado da matriz.
  • initialValue (opcional) - um valor que será passado callback()na primeira chamada. Se não for fornecido, o último elemento atua como o acumulador na primeira chamada e callback()não será executado nele.

Nota: Chamar reduceRight()uma matriz vazia sem initialValue irá lançar TypeError.

Valor de retorno de reduzRight ()

  • Retorna o valor resultante após a redução da matriz.

Notas :

  • reduceRight() executa a função fornecida para cada valor da direita para a esquerda.
  • reduceRight() não altera a matriz original.
  • Quase sempre é mais seguro fornecer initialValue.

Exemplo 1: Soma de todos os valores da 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

Resultado

 21 21

Exemplo 2: subtraindo números na 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

Resultado

 1330 2700

Este exemplo explica claramente a diferença entre passar um initialValue e não passar um initialValue.

Exemplo 3: criar funções compostas

 // 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

Resultado

 8

Sabemos que a composição da função é a maneira pela qual o resultado de uma função é passado para outra função. A execução acontece da direita para a esquerda, para que possamos aproveitar a reduceRight()função.

Neste exemplo, criamos uma composite()função que recebe um número arbitrário de argumentos. Esta função retorna outra função que recebe initialArge retorna este valor reduzido, aplicando-o contra determinadas funções da direita para a esquerda.

Leitura recomendada: Reduzir Array JavaScript ()

Artigos interessantes...