⊗jsSpItOL 65 of 294 menu

Az iterátorok egyszeri működése JavaScriptben

Minden iterátor csak egyszer vehet részt egy ciklusban. Ez egy kicsit meglepő, de logikus - hiszen a bejárt iterátor a done értékét false-ra állítja, ami azt jelenti, hogy már nem ismételhető meg.

Győződjünk meg erről. Legyen a következő generátorunk:

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

Készítsünk iterátort:

let iter = func();

Iteráljunk át az iterátoron egy ciklussal:

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

Most pedig iteráljunk át az iterátoron két ciklussal:

for (let elem of iter) { console.log(elem); // 1, 2, 3 } for (let elem of iter) { console.log(elem); // nem működik }

A probléma megoldásához minden új ciklushoz saját iterátort kell létrehozni:

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 }

Leegyszerűsíthetjük:

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

Javítsa ki a következő kódban elkövetett hibát:

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); }
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás