Оптимизација на конверзијата во низа во JavaScript
Не е секогаш потребно да се подели стрингот во низа за да се направи нешто со него. Ајде да погледнеме на пример. Нека го имаме следниот код:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Зошто овде поделбата во низа е лоша? Бидејќи, прво, на поделбата во низа трошат ресурси на процесорот, второ, добиената низа ќе зафаќа место во оперативната меморија (притоа тоа ќе биде повеќе од местото кое го зафаќа самиот стринг).
А всушност со помош на for-of
може да се итерира не само низ низи,
туку и низ стрингови:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Следниот код ја бара сумата на цифрите на внесениот број во input. Извршете оптимизација:
<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);
});
Следниот код го брои бројот на букви во стрингот. Извршете оптимизација:
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Следниот код ја проверува присутноста на симбол во стрингот. Извршете оптимизација:
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));