Tableau Javascript réduit à droite ()

La méthode JavaScript Array reductionRight () exécute une fonction de réduction sur chaque élément du tableau et l'applique à un accumulateur.

La syntaxe de la reduceRight()méthode est:

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

Ici, arr est un tableau.

Paramètres de réductionRight ()

La reduceRight()méthode prend en compte:

  • callback - La fonction à exécuter sur chaque élément du tableau. Il prend en:
    • accumulator - Il accumule les valeurs de retour du rappel. C'est initialValuepour le premier appel si fourni,
    • currentValue - L'élément actuel transmis depuis le tableau.
  • initialValue (facultatif) - Une valeur qui sera transmise au callback()premier appel. S'il n'est pas fourni, le dernier élément agit comme accumulateur lors du premier appel et callback()ne s'exécutera pas dessus.

Remarque: L' appel reduceRight()sur un tableau vide sans initialValue lancera TypeError.

Valeur renvoyée par reductionRight ()

  • Renvoie la valeur obtenue après la réduction du tableau.

Remarques :

  • reduceRight() exécute la fonction donnée pour chaque valeur de droite à gauche.
  • reduceRight() ne modifie pas la matrice d'origine.
  • Il est presque toujours plus sûr de fournir initialValue.

Exemple 1: Somme de toutes les valeurs du tableau

 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

Production

 21 21

Exemple 2: soustraction de nombres dans un tableau

 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

Production

 1330 2700

Cet exemple explique clairement la différence entre passer un initialValue et ne pas passer un initialValue.

Exemple 3: créer des fonctions composites

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

Production

 8

Nous savons que la composition de fonctions est la manière dont le résultat d'une fonction est passé à une autre fonction. L'exécution se fait de droite à gauche, nous pouvons donc profiter de la reduceRight()fonction.

Dans cet exemple, nous avons créé une composite()fonction qui prend un nombre arbitraire d'arguments. Cette fonction renvoie une autre fonction qui prend initialArget retourne cette valeur réduite en l'appliquant à des fonctions données de droite à gauche.

Lecture recommandée: JavaScript Array réduire ()

Articles intéressants...