⊗jsSpItOL 65 of 294 menu

JavaScript에서 이터레이터의 일회성 작동

각 이터레이터는 루프에 한 번만 참여할 수 있습니다. 이는 약간 예상 밖이지만, 논리적입니다 - 이미 수행된 이터레이터는 자신의 donefalse로 설정하므로, 더 이상 반복될 수 없기 때문입니다.

이를 확인해 봅시다. 다음과 같은 제너레이터가 있다고 가정합시다:

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हिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부