Iterator : méthode reduce()
Baseline
2025
Newly available
Depuis March 2025, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
La méthode reduce() des instances de Iterator est similaire à Array.prototype.reduce : elle exécute une fonction de rappel « réductrice » fournie par l'utilisateur·ice sur chaque élément produit par l'itérateur, en passant la valeur de retour du calcul sur l'élément précédent. Le résultat final de l'exécution de la fonction réductrice sur tous les éléments est une seule valeur.
Syntaxe
reduce(callbackFn)
reduce(callbackFn, initialValue)
Paramètres
callbackFn-
Une fonction à exécuter pour chaque élément produit par l'itérateur. Sa valeur de retour devient la valeur du paramètre
accumulatorlors de l'appel suivant decallbackFn. Lors du dernier appel, la valeur de retour devient la valeur de retour dereduce(). La fonction est appelée avec les arguments suivants :accumulator-
La valeur résultant de l'appel précédent à
callbackFn. Lors du premier appel, sa valeur estinitialValuesi ce dernier est défini ; sinon, sa valeur est le premier élément de l'itérateur. currentValue-
La valeur de l'élément actuel. Lors du premier appel, sa valeur est le premier élément de l'itérateur si
initialValueest défini ; sinon, sa valeur est le deuxième élément. currentIndex-
La position de l'index de
currentValue. Lors du premier appel, sa valeur est0siinitialValueest défini, sinon1.
initialValueFacultatif-
Une valeur à laquelle
accumulatorest initialisé lors du premier appel de la fonction de rappel. SiinitialValueest défini,callbackFncommence à s'exécuter avec le premier élément commecurrentValue. SiinitialValuen'est pas spécifié,accumulatorest initialisé au premier élément, etcallbackFncommence à s'exécuter avec le deuxième élément commecurrentValue. Dans ce cas, si l'itérateur est vide (de sorte qu'il n'y a pas de première valeur à retourner commeaccumulator), une erreur est levée.
Valeur de retour
La valeur résultant de l'exécution complète de la fonction de rappel « réductrice » sur l'ensemble de l'itérateur.
Exceptions
TypeError-
Levée si l'itérateur ne contient aucun élément et que
initialValuen'est pas fourni.
Description
Voir Array.prototype.reduce() pour plus de détails sur le fonctionnement de reduce(). Contrairement à la plupart des autres méthodes d'aide à l'itérateur, elle ne fonctionne pas bien avec les itérateurs infinis, car elle n'est pas paresseuse.
Exemples
>Utiliser la méthode reduce()
L'exemple suivant crée un itérateur qui produit les termes de la suite de Fibonacci, puis additionne les dix premiers termes :
function* fibonacci() {
let actuel = 1;
let suivant = 1;
while (true) {
yield actuel;
[actuel, suivant] = [suivant, actuel + suivant];
}
}
console.log(
fibonacci()
.take(10)
.reduce((a, b) => a + b),
); // 143
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-iterator.prototype.reduce> |