⊗jsSpItOL 65 of 294 menu

JavaScript-ի իտերատորների միանվագ աշխատանքը

Յուրաքանչյուր իտերատոր կարող է մասնակցել ցիկլին ընդամենը մեկ անգամ: Սա մի քիչ անսպասելի է, բայց տրամաբանական - քանի որ անցած իտերատորը իր done-ը դնում է false, ինչը նշանակում է, որ այլևս չի կարող վերափոխվել:

Եկեք համոզվենք դրանում: Ենթադրենք ունենք հետևյալ գեներատորը.

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

Ստեղծենք իտերատոր.

let iter = func();

Վերափոխենք իտերատորը մեկ ցիկլով.

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

Այժմ վերափոխենք իտերատորը երկու ցիկլով.

for (let elem of iter) { console.log(elem); // 1, 2, 3 } for (let elem of iter) { console.log(elem); // չի աշխատում }

Խնդիրը լուծելու համար անհրաժեշտ է յուրաքանչյուր նոր ցիկլի համար ստեղծել սեփական իտերատոր.

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 }

Կարող ենք պարզեցնել.

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

Ուղղեք սխալը, որը թույլ է տրվել հետևյալ կոդում.

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); }
Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել