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:
let 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:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Aşağıdaki kod, bir input alanına girilen sayının rakamlarının toplamını bulur. Optimizasyon gerçekleştirin:
<input>
let 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);
});
Aşağıdaki kod bir dizedeki harf sayısını sayar. Optimizasyon gerçekleştirin:
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Aşağıdaki kod bir dizede sembolün varlığını kontrol eder. Optimizasyon gerçekleştirin:
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));