⊗jsSpItOL 65 of 294 menu

Einmalige Arbeitsweise von Iteratoren in JavaScript

Jeder Iterator kann nur einmal in einer Schleife verwendet werden. Das ist etwas unerwartet, aber logisch - schließlich setzt ein durchlaufener Iterator sein done auf false, was bedeutet, dass er nicht erneut durchlaufen werden kann.

Lassen Sie uns davon überzeugen. Nehmen wir an, wir haben den folgenden Generator:

function *func() { yield 1; yield 2; yield 3; }

Erstellen wir einen Iterator:

let iter = func();

Durchlaufen wir den Iterator mit einer Schleife:

for (let elem of iter) { console.log(elem); // 1, 2, 3 }

Versuchen wir nun, den Iterator mit zwei Schleifen zu durchlaufen:

for (let elem of iter) { console.log(elem); // 1, 2, 3 } for (let elem of iter) { console.log(elem); // funktioniert nicht }

Um das Problem zu lösen, muss für jede neue Schleife ein eigener Iterator erstellt werden:

let iter1 = func(); for (let elem of iter1) { console.log(elem); // 1, 2, 3 } let iter2 = func(); for (let elem of iter2) { console.log(elem); // 1, 2, 3 }

Wir können es vereinfachen:

for (let elem of func()) { console.log(elem); // 1, 2, 3 } for (let elem of func()) { console.log(elem); // 1, 2, 3 }

Korrigieren Sie den Fehler, der im folgenden Code gemacht wurde:

function *func() { for (let i = 1; i <= 3; i++) { yield i; } } let elems = func(); for (let elem of elems) { console.log(elem); } for (let elem of elems) { console.log(elem); }
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen