⊗jsSpItOL 65 of 294 menu

जावास्क्रिप्ट में इटरेटर्स का एकल-बार कार्य

प्रत्येक इटरेटर लूप में भाग केवल एक बार ले सकता है। यह थोड़ा अप्रत्याशित है, परंतु तार्किक है - क्योंकि पारित इटरेटर अपना 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çaisMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
हम साइट के कार्य, विश्लेषण और व्यक्तिगतकरण के लिए कुकीज़ का उपयोग करते हैं। डेटा प्रसंस्करण गोपनीयता नीति के अनुसार किया जाता है।
सभी स्वीकार करें कॉन्फ़िगर करें अस्वीकार करें