⊗jsSpItOL 65 of 294 menu

Engångsarbete för iteratorer i JavaScript

Varje iterator kan endast delta i en loop en gång. Detta är lite oväntat, men logiskt - eftersom en iterator som har gått till slut sätter sitt done till false, och därför inte kan itereras mer.

Låt oss se till att det är så. Anta att vi har följande generator:

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

Låt oss skapa en iterator:

let iter = func();

Låt oss iterera över iteratorn med en loop:

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

Och nu låt oss iterera över iteratorn med två loopar:

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

För att lösa problemet måste du för varje ny loop skapa en ny iterator:

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 }

Vi kan förenkla:

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

Rättaa felet som har gjorts i följande kod:

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); }
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa