JavaScript တွင် Loop များအား Debug လုပ်နည်း အကြံပြုချက်များ
ယခု ကျွန်ုပ်သည် code အတွင်းရှိ အမှားများကို ရှာဖွေရန် နည်းလမ်းတစ်ခုကို သင်ပေးပါမည်။ သင် ယခင်သင်ခန်းစာမှ အကြံပြုချက်များကို တစ်စုံတစ်ရာ မှားယွင်းမှုကြောင့် မလိုက်နာခဲ့ပါက အလုပ်မလုပ်သော code တစ်ခုကို ရရှိလိမ့်မည်ဟု စိတ်ကူးကြည့်ပါ။ အမှားများကို မည်သို့ရှာဖွေပြီး ၎င်းအား အလုပ်လုပ်စေရန် မည်သို့လုပ်ဆောင်ရမည်ကို ကြည့်ရှုကြပါစို့။
စတင်လေ့လာသူများစွာသည် မှားယွင်းသော ရှာဖွေရေးနည်းလမ်းကို အသုံးပြုကြသည်။ သူတို့သည် code ကို ယူပြီး အမှားကို သတိပြုမိမည်ဟု မျှော်လင့်ချက်ဖြင့် ကြည့်နေကြသည်။ နာရီအနည်းငယ်ကြာအောင် ထိုနည်းအတိုင်းပင် လုပ်ဆောင်ကြသည်။ ဤနည်းလမ်းသည် အလုပ်မဖြစ်ပါ။
မှန်ကန်သော နည်းလမ်းမှာ variable များကို console ထဲသို့ ထုတ်ပြပြီး လိုအပ်သည့် အရာများ ရှိ/မရှိ သတ်မှတ်ခြင်းဖြစ်သည်။ ထိုသို့လုပ်ဆောင်ရာတွင် ပြဿနာဖြစ်နိုင်သည့် နေရာမှ စတင်ပြီး code ၏ အပေါ်သို့ ရွေ့လျားသွားရမည်။ လက်တွေ့တွင် ကြည့်ရှုကြပါစို့။
ဥပမာအနေဖြင့် သင့်ရှေ့တွင် နှစ်လုံးဂဏန်းများပါဝင်သော array တစ်ခုကို လှန်လှောပြီး �ထမဂဏန်းသည် ဒုတိယဂဏန်းထက် တစ်ပိုကြီးသော ဂဏန်းများကို ရှာဖွေရန် လုပ်ဆောင်ချက် တစ်ခုရှိတယ်ဆိုပါစို့။ ရိုးရှင်းစေရန် array ထဲတွင် ဂဏန်းများကို string ပုံစံဖြင့် သိမ်းဆည်းထားသည်ဟု ယူဆပါ။
သင် လုပ်ဆောင်ချက်ကို ဖြေရှင်းပြီး အောက်ပါ code ကို ရရှိသည်ဟု ယူဆပါ။
javascriptlet arr = ['21', '32', '34', '43', '45', '54', '55'];
let sum = 0;
for (let elem of arr) {
if (elem[0] === elem[1] + 1) {
sum += elem;
}
}
console.log(sum); // 0 ကို ပြသသည်
သို့သော် code သည် 0 ကို ပြသသည်။ ထိုသို့ဆိုလျှင်
ပထမဆုံး စစ်ဆေးရမည့် အရာမှာ
if condition အတွင်းသို့ code ၏ execution ရောက်ရှိမရောက်ရှိ ဆိုတာကို
ကြည့်ရှုရန်အတွက် variable အတွင်းရှိ အရာများကို စစ်ဆေးရန် ဖြစ်သည်။
၎င်းအတွင်း တစ်ခုခုကို console ထဲသို့ ထုတ်ပြကြည့်ပါမည်။
javascriptlet arr = ['21', '32', '34', '43', '45', '54', '55'];
let sum = 0;
for (let elem of arr) {
if (elem[0] === elem[1] + 1) {
console.log('!'); // ဘာမှ မပြသပါ
sum += elem;
}
}
console.log(sum);
Console တွင် ဘာမှမပေါ်လာသောကြောင့် code ၏ execution သည် condition အတွင်းသို့ ဝင်ရောက်ခြင်း မရှိဟု ဆိုလိုသည်။ ကျွန်ုပ်တို့ မျက်ဝါးထင်ထင် မည်သည့်အရာကို နှိုင်းယှဉ်နေသည်ကို ကြည့်ရှုကြည့်ပါမည်။
javascriptlet arr = ['21', '32', '34', '43', '45', '54', '55'];
let sum = 0;
for (let elem of arr) {
console.log(elem[0], elem[1] + 1); // '2' နှင့် '11', '3' နှင့် '21' ...
if (elem[0] === elem[1] + 1) {
sum += elem;
}
}
console.log(sum);
ရလဒ်အနေဖြင့် ဒုတိယနံပါတ်သည် နှစ်လုံးဂဏန်းဖြစ်နေသည်ကို ချက်ချင်းမြင်တွေ့ရသည်။ ယင်းသည် တစ်ကို string အဖြစ် ပေါင်းထည့်သောကြောင့် ဖြစ်သည်ဟု နားလည်ရန် လွယ်ကူသည်။ ပြဿနာကို ပြင်ဆင်ပါမည်။
javascriptlet arr = ['21', '32', '34', '43', '45', '54', '55'];
let sum = 0;
for (let elem of arr) {
if (+elem[0] === +elem[1] + 1) { // ပြင်ဆင်သည်
sum += elem;
}
}
console.log(sum); // '021324354'
ပြင်ဆင်ပြီးနောက် ကျွန်ုပ်တို့သည် variable sum အတွင်းတွင်
တစ်စုံတစ်ရာ ပေါ်လာသည်ကို မြင်တွေ့ရပြီဖြစ်သော်လည်း
မမှန်ကန်သေးပါ။
သို့သော် လိုအပ်သောအရာများ ရှိနေသော်လည်း ၎င်းတို့သည်
ဂဏန်းများအဖြစ် မဟုတ်ဘဲ string များအဖြစ် ပေါင်းထည့်မိသည်ကို တွေ့မြင်ရသည်။
ပြဿနာကို ပြင်ဆင်ပါမည်။
javascriptlet arr = ['21', '32', '34', '43', '45', '54', '55'];
let sum = 0;
for (let elem of arr) {
if (+elem[0] === +elem[1] + 1) {
sum += +elem; // ပြင်ဆင်သည်
}
}
console.log(sum); // အားလုံး အလုပ်လုပ်သည်
အောက်ပါ code တွင် ပြုလုပ်ထားသော အမှားများကို ပြင်ဆင်ပါ။
javascriptlet obj = {a: 10, b: 20, c: 30, d: 40, e: 50};
let sum = 0;
for (let elem in obj) {
if (elem[0] === '1' && elem[0] === '2') {
sum += +elem;
}
}
console.log(sum);