JavaScript တွင် for-in loop ဖြင့် Array ကိုဖြတ်ကျော်ရာတွင် အမှား
Array ကိုဖြတ်ကျော်ရန်
for-of loop ကိုအသုံးပြုသင့်ပါသည်။
သို့သော် တစ်ခါတစ်ရံတွင် အစပြုသူများသည်
for-in loop ကို မှားယွင်းစွာအသုံးပြုရန် ကြိုးစားတတ်ကြသည်။
ဤအမှား၏ ထင်ရှားသောလက္ခဏာများကို
ကြည့်ရှုကြပါစို့။
ကျွန်ုပ်တို့တွင် array တစ်ခုရှိသည်ဆိုပါစို့။
let arr = ['a', 'b', 'c'];
ဤ Array ၏ element များကိုဖြတ်ကျော်ပြီး အားလုံးကို string တစ်ကြောင်းတည်းဖြစ်အောင် ရေးကြည့်ကြပါစို့။
ပရိုဂရမ်မာတစ်ဦးသည် ဤပြဿနာကိုဖြေရှင်းပြီးဖြစ်သော်လည်း၊
for-in loop ကို မှားယွင်းစွာအသုံးပြုမိခဲ့သည်။
သူ၏ရလဒ်ကို ကြည့်ရှုကြည့်ရအောင်။
let res = '';
for (let elem in arr) {
res += elem;
}
console.log(res); // '012' ကိုဖော်ပြမည်
ထို့ကြောင့် ရလဒ်အဖြစ် 'abc' မဟုတ်ဘဲ
'012' string ကိုရရှိသည်။
ဤသို့ဖြစ်ရခြင်း၏ အကြောင်းရင်းကို
ရှာဖွေကြည့်ကြပါစို့။
အဘယ်ကြောင့် for-in loop ဖြင့် array ကိုဖြတ်ကျော်နိုင်သနည်း။ အကြောင်းမှာ JavaScript တွင် array သည် object ၏ အထူးကိစ္စတစ်ခုဖြစ်သောကြောင့်ပင်။ ထို့ကြောင့် ဤကုဒ်သည် နည်းပညာအရမှန်ကန်သော်လည်း ဤသို့လုပ်ဆောင်ခြင်းမပြုသင့်ပါ။
အကြောင်းမှာ for-in သည်
အခြေအနေအချို့တွင် ပိုလျှံသောအရာများကို ထိတွေ့နိုင်ပြီး၊
array ၏ element များအပြင်
ဖြတ်ကျော်ရာတွင် အခြားသော အပိုပစ္စည်းများပါ ရရှိနိုင်သောကြောင့်ဖြစ်သည်။
Array များကို for-of ဖြင့်သာ ဖြတ်ကျော်ပါ။
ယခု ကျွန်ုပ်တို့ ထိုထူးဆန်းသောရလဒ်ကို
မြင်ရသည့် အကြောင်းရင်းကို ရှာဖွေကြည့်ကြပါစို့။
အကြောင်းမှာ for-in ဖြင့်ဖြတ်ကျော်ရာတွင်
elem variable ထဲသို့ ဤ variable အမည်က စိတ်ရှုပ်စေသော်လည်း
တကယ်တော့ key များသာ ဝင်ရောက်နေသောကြောင့်ဖြစ်သည်။
ယခု ကျွန်ုပ်တို့ကျူးလွန်မိသော အမှားကိုပြင်ဆင်ကာ မှန်ကန်သောကုဒ်ကို ရေးကြည့်ကြပါစို့။
let arr = ['a', 'b', 'c'];
let res = '';
for (let elem of arr) {
res += elem;
}
console.log(res); // 'abc' ကိုဖော်ပြမည်