Optimizacija pretvaranja u niz u JavaScript-u
Nije uvek potrebno razbiti string u niz da bi se nešto uradio sa njim. Pogledajmo na primeru. Neka imamo sledeći kod:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Zašto je ovde razbijanje u niz loše? Zato što, prvo, na razbijanje u niz troše se resursi procesora, drugo, rezultirajući niz će zauzimati mesto u operativnoj memoriji (i to više nego što zauzima sam string).
A zapravo pomoću for-of
možemo iterirati ne samo nizove,
već i stringove:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Sledeći kod traži zbir cifara unetog u input broja. Izvršite optimizaciju:
<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);
});
Sledeći kod broji količinu slova u stringu. Izvršite optimizaciju:
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Sledeći kod proverava prisustvo simbola u stringu. Izvršite optimizaciju:
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));