Iterator Helpers
JavaScript 🟡 MidDéfinition
Méthodes paresseuses sur les itérateurs natifs, standardisées dans ES2025 : map, filter, take, drop, flatMap, reduce, forEach, some, every, find et toArray, plus Iterator.from pour envelopper un itérable quelconque. Chaque étape consomme les valeurs à la demande, sans tableau intermédiaire, ce qui permet de traiter des séquences infinies. ES2026 ajoute Iterator.concat.
Analogie
Une chaîne de montage où chaque pièce passe de poste en poste, au lieu d'empiler toutes les pièces entre chaque poste.
Exemple de code
function* naturels() { let n = 1; while (true) yield n++; }
const carresPairs = naturels()
.filter(n => n % 2 === 0)
.map(n => n * n)
.take(3)
.toArray(); // [4, 16, 36] — l'infini n'est jamais parcouru
// Map.values() sans copie en tableau
const total = stocks.values().reduce((a, b) => a + b, 0);
Cas d'usage
Traiter des flux ou de grandes collections (Map, Set, générateurs) sans copies ; lire un générateur infini par morceaux.
Anti-pattern
Appeler [...itérateur].map(...) par réflexe : on perd la paresse et on alloue un tableau complet.
Termes liés
Sources
Fiche mise à jour le 2026-09-27