Iterator.from în JavaScript

Iteratori ES2025

Transformă orice iterabil sau iterator într-un iterator cu metodele map, filter, take, toArray.

Sintaxă
Iterator.from(obiect)

Ce face Iterator.from

Un iterator produce valori una câte una, la cerere, prin metoda next(). Tablourile, textele, Map, Set și generatoarele (function*) pot fi parcurse cu iteratori, de exemplu în for...of.

Din ES2025, iteratorii au metode proprii (map, filter, take, drop, flatMap, toArray, reduce etc.). Iterator.from „împachetează” orice iterabil sau orice obiect cu next() astfel încât să aibă aceste metode.

Parametri

Parametru Descriere
obiect Un iterabil (tablou, text, Set, Map) sau un obiect cu metoda next().

Ce returnează

Un iterator cu metodele ajutătoare.

Exemple

Exemplul 1: Din text și dintr-un obiect cu next()

console.log(Iterator.from("Cluj").map((l) => l.toUpperCase()).toArray());

let n = 0;
const numarator = { next: () => ({ value: n++, done: n > 4 }) };
console.log(Iterator.from(numarator).toArray());

Rezultat

[ 'C', 'L', 'U', 'J' ]
[ 0, 1, 2, 3 ]

Exemplul 2: Iteratorul unui tablou, pas cu pas

const it = Iterator.from(["a", "b"]);

console.log(it.next());
console.log(it.next());
console.log(it.next());

Rezultat

{ value: 'a', done: false }
{ value: 'b', done: false }
{ value: undefined, done: true }

Greșeli frecvente

  • Apelezi metodele de iterator direct pe un tablou: [1, 2].take(1) dă TypeError. Tablourile au metodele lor; pentru iteratori folosește tablou.values().take(1) sau Iterator.from(tablou).

Comenzi înrudite