⊗jsSpItOL 65 of 294 menu

JavaScript-da iteratoryň bir gezek işleşi

Her bir iterator aýlawda diňe bir gezek okat bolar. Bu biraz gözlenilmedik, ýöne mäkül - sebäbi aýlanan iterator özüniň done diýen ýagdaýyny false edýär, ýagny mundan beýläk gaýtalanap bilmeýär.

Geliň munuň ýaly bolýandygyna göz ýetireli. Bizde aşakdaky generator bolsun:

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

Iterator ýasaýalyň:

let iter = func();

Iteratory bir aýlaw bilen aýlanyň:

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

Indi iteratory iki aýlaw bilen aýlanyň:

for (let elem of iter) { console.log(elem); // 1, 2, 3 } for (let elem of iter) { console.log(elem); // işlemeýär }

Meseläni çözmek üçin her bir täze aýlaw üçin öz iteratoryňyzy döretmeli:

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 }

Ýönekeýleşdirip bileris:

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

Aşakdaky koda ýol goýberlen ýalňyşlygy düzediň:

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ürkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et