JavaScript Iterables
Iterable objects များသည် ထပ်တလဲလဲ ပြုလုပ်နိုင်သော အရာများ for..of
ဖြစ်သည်။
နည်းပညာအရ၊ iterable များသည် Symbol.iterator
နည်းလမ်းကို အကောင်အထည်ဖော်ရမည်ဖြစ်သည်။
ကြိုးတစ်ချောင်းကို ထပ်ခါထပ်ခါ
for..of
string တစ်ခု၏ဒြပ်စင်များပေါ်တွင် ထပ်လောင်းရန် loop တစ်ခုကို သင်သုံးနိုင်သည် -
ဥပမာ
for (const x of "W3Schools") {
// code block to be executed
}
Array တစ်ခုအပေါ် ထပ်လောင်းခြင်း
for..of
Array ၏ဒြပ်စင်များပေါ်တွင် ထပ်တလဲလဲလုပ်ရန် loop တစ်ခုကို သင်သုံးနိုင်သည် ။
ဥပမာ
for (const x of [1,2,3,4,5] {
// code block to be executed
}
JavaScript Iterators
iterator protocol သည် အ ရာဝတ္တုတစ်ခုမှ တန်ဖိုးများ အစီအရီ ကို မည်သို့ထုတ်လုပ်ရမည်ကို သတ်မှတ်သည် ။
Method တစ်ခုကို အကောင်အထည်ဖော် သောအခါ အရာဝတ္ထုတစ်ခုသည် ထပ်ကာထပ်ကာ ဖြစ်လာသည် ။next()
နည်းလမ်း သည် next()
ဂုဏ်သတ္တိနှစ်ခုပါသော အရာတစ်ခုကို ပြန်ပေးရမည်-
- တန်ဖိုး (နောက်တန်ဖိုး)
- ပြီးပြီ (မှန်သည်ဖြစ်စေ၊ မှားသည်ဖြစ်စေ)
တန်ဖိုး | iterator မှပြန်ပေးသောတန်ဖိုး (အမှန်တကယ်လုပ်ဆောင်ပါကချန်လှပ်ထားနိုင်သည်) |
---|---|
ပြီးပြီ။ |
အကယ်၍ iterator သည် တန်ဖိုးအသစ်တစ်ခုထုတ်လုပ်ခဲ့ပါက iterator သည် false ပြီးသွားပါက true |
Home Made Iterable ပါ။
ဤအကြိမ်တိုင်းသည် အဆုံးမရှိ ပြန်လာသည်- 10,20,30,40,.... အချိန်တိုင်း
next()
ဟုခေါ်သည်-
ဥပမာ
// Home Made Iterable
function myNumbers() {
let n = 0;
return {
next: function() {
n += 10;
return {value:n, done:false};
}
};
}
// Create Iterable
const n = myNumbers();
n.next(); // Returns 10
n.next(); // Returns 20
n.next(); // Returns 30
အိမ်တွင် ပြဿနာက ထပ်ခါထပ်ခါ ဖြစ်နေသည်-
for..of
JavaScript ထုတ်ပြန်ချက်ကို မပံ့ပိုးပါ ။
JavaScript iterable သည် Symbol.iterator ပါရှိသည့် အရာတစ်ခုဖြစ်သည် ။
Symbol.iterator
လုပ်ဆောင်ချက်သည် လုပ်ဆောင်ချက်တစ်ခုကို ပြန်ပေးသည့် လုပ်ဆောင်ချက် next()
တစ်ခုဖြစ်သည်။
iterable တစ်ခုကို ကုဒ်ဖြင့် ထပ်ကာထပ်ကာ ပြုလုပ်နိုင်သည်- for (const x of iterable) { }
ဥပမာ
// Create an Object
myNumbers = {};
// Make it Iterable
myNumbers[Symbol.iterator] = function() {
let n = 0;
done = false;
return {
next() {
n += 10;
if (n == 100) {done = true}
return {value:n, done:done};
}
};
}
ယခုသင်သုံးနိုင်သည်။ for..of
for (const num of myNumbers) {
// Any Code Here
}
Symbol.iterator နည်းလမ်းကို အလိုအလျောက် ခေါ်သည် for..of
။
သို့သော် ကျွန်ုပ်တို့သည် ၎င်းကို "ကိုယ်တိုင်" လုပ်နိုင်သည်။
ဥပမာ
let iterator = myNumbers[Symbol.iterator]();
while (true) {
const result = iterator.next();
if (result.done) break;
// Any Code Here
}