JavaScript'te Diziye Dönüştürmenin Optimizasyonu

Bir şeyler yapmak için her zaman bir dizeyi diziye bölmek gerekli değildir. Bir örneğe bakalım. Aşağıdaki koda sahip olduğumuzu varsayalım:

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

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

console.log(sum);

Neden burada diziye bölmek kötüdür? Çünkü ilk olarak, diziye bölme işlemi işlemci kaynaklarını harcar, ikinci olarak, elde edilen dizi operatif bellekte yer kaplayacaktır (üstelik bu yer, dizenin kapladığı yerdən daha fazla olacaktır).

Aslında for-of ile sadece dizileri değil, dizeleri de yineleyebiliriz:

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

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

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

Aşağıdaki kod, bir input alanına girilen sayının rakamlarının toplamını bulur. Optimizasyon gerçekleştirin:

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

Aşağıdaki kod bir dizedeki harf sayısını sayar. Optimizasyon gerçekleştirin:

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

let i = 0;

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

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

Aşağıdaki kod bir dizede sembolün varlığını kontrol eder. Optimizasyon gerçekleştirin:

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

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