Iterator Helpers

JavaScript 🟡 Mid

Dé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.
#core#ES2025#performance

Dans l'actu

  • 18/08 Firefox 154 : fonctions CSS sibling-index() et sibling-count(), propriétés text-box-trim/text-box-edge (et raccourci text-box), en-tête HTTP No-Vary-Search, nouvelles méthodes Iterator (chunks, windows, includes, join) et extension des protections Local Network Access aux connexions WebSocket. Bilan août 2026 →

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre