⊗jsSpItOL 65 of 294 menu

JavaScript'te Yineleyicilerin Tek Seferlik Çalışması

Her yineleyici bir döngüde yalnızca bir kez yer alabilir. Bu biraz beklenmedik, ancak mantıklı - çünkü tamamlanan bir yineleyici kendi done değerini false olarak ayarlar, bu da artık üzerinde yeniden döngü yapılamayacağı anlamına gelir.

Bunu görelim. Aşağıdaki jeneratöre sahip olduğumuzu varsayalım:

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

Bir yineleyici oluşturalım:

let iter = func();

Yineleyiciyi bir döngü ile geçelim:

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

Şimdi yineleyiciyi iki döngü ile geçelim:

for (let elem of iter) { console.log(elem); // 1, 2, 3 } for (let elem of iter) { console.log(elem); // çalışmaz }

Sorunu çözmek için, her yeni döngü için kendi yineleyicinizi oluşturmanız gerekir:

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 }

Basitleştirebiliriz:

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

Aşağıdaki kodda yapılan hatayı düzeltin:

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); }
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet