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ștetablou.values().take(1)sauIterator.from(tablou).
Comenzi înrudite
Iterator.prototype.map / filter / take / drop / flatMap: Transformă, filtrează și limitează valorile unui iterator „leneș”, fără să creeze tablouri intermediare.Iterator.prototype.toArray / reduce / forEach / some / every / find: Metodele care consumă un iterator și returnează un rezultat: tablou, valoare cumulată, true/false sau elementul găsit.for...of: Parcurge pe rând elementele unui tablou, ale unui șir sau ale altei colecții.