JavaScript တွင် Iterator များ၏ တစ်ကြိမ်သာ အလုပ်လုပ်ခြင်း

Iterator တစ်ခုစီသည် loop တစ်ခုတွင်သာ တစ်ကြိမ်သာ ပါဝင်နိုင်ပါသည်။ ၎င်းသည် အနည်းငယ် မျှော်လင့်မထားသော်လည်း ယုတ္တိတန်ပါသည် - အဘယ့်ကြောင့်ဆိုသော် အသုံးပြုပြီးသော iterator သည် ၎င်း၏ done ကို false အဖြစ် သတ်မှတ်လိုက်ပြီး နောက်ထပ် ထပ်မံဖြတ်သန်းနိုင်ခြင်း မရှိတော့ပါ။

အကြံပြုချက်: ၎င်းကို စမ်းကြည့်ကြပါစို့။ ကျွန်ုပ်တို့တွင် အောက်ပါ generator ရှိသည်ဆိုပါစို့။

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

Iterator တစ်ခု ဖန်တီးကြပါစို့။

javascriptlet iter = func();

Iterator ကို loop တစ်ခုဖြင့် ဖြတ်သန်းကြည့်ပါမည်။

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

ယခုတော့ iterator ကို loop နှစ်ခုဖြင့် ဖြတ်သန်းကြည့်ပါမည်။

javascriptfor (let elem of iter) {
  console.log(elem); // 1, 2, 3
}
for (let elem of iter) {
  console.log(elem); // အလုပ်မလုပ်ပါ
}

ပြဿနာကို ဖြေရှင်းရန် loop အသစ်တိုင်းအတွက် သက်ဆိုင်ရာ iterator အသစ်တစ်ခုစီ ဖန်တီးရန် လိုအပ်ပါသည်။

javascriptlet 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
}

ကျွန်ုပ်တို့ ရိုးရှင်းအောင် လုပ်နိုင်ပါသည်။

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

for (let elem of func()) {
  console.log(elem); // 1, 2, 3
}
Задание 1

အောက်ပါကုဒ်တွင် ပြုလုပ်ထားသော အမှားကို ပြင်ဆင်ပေးပါ။

javascriptfunction *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);
}