Javascript Array reduceRight ()

Il metodo JavaScript Array reduceRight () esegue una funzione di riduzione su ogni elemento dell'array e la applica a un accumulatore.

La sintassi del reduceRight()metodo è:

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

Qui, arr è un array.

parametri reduceRight ()

Il reduceRight()metodo comprende:

  • callback - La funzione da eseguire su ogni elemento dell'array. Comprende:
    • accumulator: accumula i valori restituiti dalla richiamata. È initialValueper la prima chiamata se fornita,
    • currentValue - L'elemento corrente passato dall'array.
  • initialValue (opzionale) - Un valore che verrà passato alla callback()prima chiamata. Se non fornito, l'ultimo elemento funge da accumulatore alla prima chiamata e callback()non verrà eseguito su di esso.

Nota: la chiamata reduceRight()su un array vuoto senza initialValue verrà generata TypeError.

Valore restituito da reduceRight ()

  • Restituisce il valore risultante dopo aver ridotto l'array.

Note :

  • reduceRight() esegue la funzione data per ogni valore da destra a sinistra.
  • reduceRight() non modifica l'array originale.
  • È quasi sempre più sicuro fornire initialValue.

Esempio 1: somma di tutti i valori di array

 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

Produzione

 21 21

Esempio 2: sottrazione di numeri in array

 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

Produzione

 1330 2700

Questo esempio spiega chiaramente la differenza tra il passaggio di un initialValue e il non passaggio di un initialValue.

Esempio 3: creazione di funzioni composite

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

Produzione

 8

Sappiamo che la composizione della funzione è il modo in cui il risultato di una funzione viene passato a un'altra funzione. L'esecuzione avviene da destra a sinistra, quindi possiamo sfruttare la reduceRight()funzione.

In questo esempio, abbiamo creato una composite()funzione che accetta un numero arbitrario di argomenti. Questa funzione restituisce un'altra funzione che accetta initialArge restituisce questo valore ridotto applicandolo a determinate funzioni da destra a sinistra.

Letture consigliate: JavaScript Array reduce ()

Articoli interessanti...