⊗jsSpItOL 65 of 294 menu

JavaScript-də iteratorların bir dəfə işləməsi

Hər bir iterator ancaq bir dəfə dövrədə iştirak edə bilər. Bu bir qədər gözlənilməzdir, amma məntiqlidir - axı bitmiş iterator öz done-nı false-ə təyin edir, bu isə o deməkdir ki, artıq təkrarən gəzilə bilməz.

Gəlin buna əmin olaq. Tutaq ki, bizim aşağıdakı generator var:

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

Gəlin iterator yaradaq:

let iter = func();

Gəlin iteratoru bir dövrə ilə gəzək:

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

İndi isə iteratoru iki dövrə ilə gəzək:

for (let elem of iter) { console.log(elem); // 1, 2, 3 } for (let elem of iter) { console.log(elem); // işləmir }

Problemi həll etmək üçün hər yeni dövrə üçün öz iteratorunu yaratmaq lazımdır:

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 }

Biz sadələşdirə bilərik:

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

Aşağıdakı kodda edilmiş səhvi düzəldin:

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); }
Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et