Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthode reduceRight() des instances Array applique une fonction à un accumulateur et à chaque valeur du tableau (de droite à gauche) pour les réduire à une seule valeur.
Voir aussi Array.prototype.reduce() pour une réduction de gauche à droite.
La fonction à exécuter pour chaque élément du tableau. Sa valeur de retour devient la valeur du paramètre accumulator lors de l'appel suivant de callbackFn. Pour le dernier appel, la valeur de retour devient la valeur retournée par reduceRight(). La fonction est appelée avec les arguments suivants :
accumulatorLa valeur résultant de l'appel précédent de callbackFn. Lors du premier appel, sa valeur est initialValue si ce dernier est défini ; sinon, sa valeur est le dernier élément du tableau.
currentValueLa valeur de l'élément courant. Lors du premier appel, sa valeur est le dernier élément si initialValue est défini ; sinon, sa valeur est l'avant-dernier élément.
currentIndexL'index de currentValue dans le tableau. Lors du premier appel, sa valeur est array.length - 1 si initialValue est défini, sinon array.length - 2.
arrayLe tableau sur lequel reduceRight() a été appelé.
initialValue FacultatifLa valeur à utiliser comme accumulateur lors du premier appel de la fonction callbackFn. Si aucune valeur initiale n'est fournie, le dernier élément du tableau sera utilisé et ignoré. Appeler reduceRight() sur un tableau vide sans valeur initiale lève une exception TypeError.
La valeur obtenue grâce à la fonction de réduction.
La méthode reduceRight() est une méthode itérative. Elle exécute une fonction de rappel « de réduction » sur tous les éléments du tableau, dans l'ordre décroissant des indices, et les accumule en une seule valeur. Consultez la section méthodes itératives pour plus d'informations sur le fonctionnement général de ces méthodes.
callbackFn n'est appelée que pour les indices du tableau qui ont des valeurs attribuées. Elle n'est pas appelée pour les cases vides dans un tableau creux.
Contrairement aux autres méthodes itératives, reduceRight() n'accepte pas d'argument thisArg. callbackFn est toujours appelée avec la valeur undefined pour this, qui est remplacée par globalThis si callbackFn n'est pas en mode strict.
La méthode reduceRight() est générique. Elle attend seulement que la valeur de this possède une propriété length et des propriétés à clés entières.
Toutes les mises en garde concernant reduce évoquées dans Quand ne pas utiliser reduce() s'appliquent aussi à reduceRight. Comme JavaScript ne possède pas de sémantique d'évaluation paresseuse, il n'y a aucune différence de performance entre reduce et reduceRight.
L'appel à la fonction de rappel callbackFn de reduceRight ressemblerait à ceci :
La première fois que la fonction est appelée, accumulator et currentValue peuvent prendre deux valeurs différentes. Si une initialValue est fournie lors de l'appel à reduceRight, alors accumulator sera égal à initialValue et currentValue sera égal à la dernière valeur du tableau. Si aucune initialValue n'est fournie, alors accumulator sera égal à la dernière valeur du tableau et currentValue sera égal à l'avant-dernière valeur.
Si le tableau est vide et qu'aucune initialValue n'est fournie, TypeError sera levée. Si le tableau ne contient qu'un seul élément (peu importe sa position) et qu'aucune initialValue n'est fournie, ou si initialValue est fournie mais que le tableau est vide, la valeur unique sera retournée sans appeler callbackFn.
Voici quelques exemples d'exécution de la fonction :
La fonction de rappel sera appelée quatre fois, avec les arguments et valeurs de retour suivants à chaque appel :
| Premier appel | 4 | 3 | 3 | 7 |
| Deuxième appel | 7 | 2 | 2 | 9 |
| Troisième appel | 9 | 1 | 1 | 10 |
| Quatrième appel | 10 | 0 | 0 | 10 |
Le paramètre array ne change jamais pendant le processus : il reste toujours [0, 1, 2, 3, 4]. La valeur retournée par reduceRight sera celle du dernier appel de la fonction de rappel (10).
Ici, on réduit le même tableau avec le même algorithme, mais en passant une initialValue de 10 comme second argument à reduceRight() :
| Premier appel | 10 | 4 | 4 | 14 |
| Deuxième appel | 14 | 3 | 3 | 17 |
| Troisième appel | 17 | 2 | 2 | 19 |
| Quatrième appel | 19 | 1 | 1 | 20 |
| Cinquième appel | 20 | 0 | 0 | 20 |
La valeur retournée par reduceRight dans ce cas sera bien sûr 20.
La composition de fonctions est un mécanisme permettant de combiner des fonctions, où la sortie de chaque fonction est passée à la suivante, et la sortie de la dernière fonction est le résultat final. Dans cet exemple, on utilise reduceRight() pour implémenter la composition de fonctions.
Voir aussi Composition de fonctions (angl.) sur Wikipédia.
reduceRight() ignore les éléments manquants dans les tableaux creux, mais n'ignore pas les valeurs undefined.
La méthode reduceRight() lit la propriété length de this puis accède à chaque propriété dont la clé est un entier non négatif inférieur à length.
| ECMAScript® 2027 Language Specification # sec-array.prototype.reduceright |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 6 nov. 2025 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.