JavaScript တွင် ခင်းကျင်းဖြင့် အသွင်ပြောင်းခြင်းကို အကောင်းဆုံးဖြစ်အောင်လုပ်ခြင်း

တစ်ခုခုလုပ်ဖို့ စာကြောင်းကို ခင်းကျင်းမှုအဖြစ် အမြဲတမ်း ခွဲခြားစရာမလိုပါ။ ဥပမာကို ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့မှာ အောက်ပါကုဒ်ရှိတယ်ဆိုပါစို့:

javascriptlet num = 123456789;
let arr = String(num).split('');
let sum = 0;

for (let elem of arr) {
  sum += +elem;
}

console.log(sum);

ဒီမှာ ခင်းကျင်းမှုအဖြစ် ခွဲခြားတာက ဘာကြောင့် မကောင်းတာလဲ? အဘယ်ကြောင့်ဆိုသော် ပထမဦးစွာ၊ ခင်းကျင်းမှုအဖြစ် ခွဲခြားခြင်းသည် processor ၏ အရင်းအမြစ်များကို သုံးစွဲပြီး ဒုတိယအနေနဲ့၊ ရရှိလာမယ့် ခင်းကျင်းမှုသည် RAM အတွင်း နေရာယူထားမည် (ထို့အပြင် ယင်းသည် စာကြောင်းကိုယ်တိုင် နေရာယူသည်ထက် ပိုများနိုင်သည်)။

တကယ်တော့ for-of ကို အသုံးပြု၍ ခင်းကျင်းများကိုသာမက စာကြောင်းများကိုလည်း ထပ်ကျော့လို့ရပါတယ်:

javascriptlet num = 123456789;
let str = String(num);
let sum = 0;

for (let char of str) {
  sum += +char;
}

console.log(sum);
Задание 1

အောက်ပါကုဒ်သည် input တွင် ရိုက်ထည့်ထားသော နံပါတ်၏ ဂဏန်းများပေါင်းလဒ်ကို ရှာဖွေသည်။ အကောင်းဆုံးဖြစ်အောင်လုပ်ပါ:

html<input>
javascriptlet input = document.querySelector('input');

input.addEventListener('blur', function() {
  let digits = input.value.split('');
  let sum = 0;
  
  for (let digit of digits) {
    sum += +digit;
  }
  
  console.log(sum);
});
Задание 2

အောက်ပါကုဒ်သည် စာကြောင်းတစ်ခုအတွင်းရှိ စာလုံးအရေအတွက်ကို ရေတွက်သည်။ အကောင်းဆုံးဖြစ်အောင်လုပ်ပါ:

javascriptlet str = 'abcaab';
let arr = str.split('');

let i = 0;

for (let elem of arr) {
  if (elem == 'a') {
    i++;
  }
}

console.log(i);
Задание 3

အောက်ပါကုဒ်သည် စာကြောင်းထဲတွင် သင်္ကေတတစ်ခု ရှိမရှိ စစ်ဆေးသည်။ အကောင်းဆုံးဖြစ်အောင်လုပ်ပါ:

javascriptlet str = 'abcaab';
let arr = str.split('');

console.log(arr.includes('a'));