Optimizacija pretvorbe v matriko v JavaScript
Ni vedno potrebno razbiti niz v matriko, da bi nekaj naredili z njim. Poglejmo si primer. Recimo, da imamo naslednjo kodo:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Zakaj je razbijanje v matriko tukaj slabo? Ker se, prvič, za razbijanje v matriko porabijo viri procesorja, drugič, nastala matrika bo zasedala prostor v operativnem spominu (in to več, kot prostor, ki ga zaseda sam niz).
Pravzaprav pa lahko z for-of
ponavljamo ne le po matrikah,
ampak tudi po nizih:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Naslednja koda išče vsoto števk vnešene številke v vnosno polje. Izvedite optimizacijo:
<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);
});
Naslednja koda prešteje število črk v nizu. Izvedite optimizacijo:
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Naslednja koda preverja prisotnost znaka v nizu. Izvedite optimizacijo:
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));