JavaScript တွင် Iterator များ၏ တစ်ကြိမ်သာ အလုပ်လုပ်ခြင်း
Iterator တစ်ခုစီသည် loop တစ်ခုတွင်သာ တစ်ကြိမ်သာ ပါဝင်နိုင်ပါသည်။ ၎င်းသည် အနည်းငယ် မျှော်လင့်မထားသော်လည်း ယုတ္တိတန်ပါသည် - အဘယ့်ကြောင့်ဆိုသော် အသုံးပြုပြီးသော iterator သည် ၎င်း၏ done ကို false အဖြစ် သတ်မှတ်လိုက်ပြီး နောက်ထပ် ထပ်မံဖြတ်သန်းနိုင်ခြင်း မရှိတော့ပါ။
အကြံပြုချက်: ၎င်းကို စမ်းကြည့်ကြပါစို့။ ကျွန်ုပ်တို့တွင် အောက်ပါ generator ရှိသည်ဆိုပါစို့။
function *func() {
yield 1;
yield 2;
yield 3;
}
Iterator တစ်ခု ဖန်တီးကြပါစို့။
let iter = func();
Iterator ကို loop တစ်ခုဖြင့် ဖြတ်သန်းကြည့်ပါမည်။
for (let elem of iter) {
console.log(elem); // 1, 2, 3
}
ယခုတော့ iterator ကို loop နှစ်ခုဖြင့် ဖြတ်သန်းကြည့်ပါမည်။
for (let elem of iter) {
console.log(elem); // 1, 2, 3
}
for (let elem of iter) {
console.log(elem); // အလုပ်မလုပ်ပါ
}
ပြဿနာကို ဖြေရှင်းရန် loop အသစ်တိုင်းအတွက် သက်ဆိုင်ရာ iterator အသစ်တစ်ခုစီ ဖန်တီးရန် လိုအပ်ပါသည်။
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);
}