Tömbvé alakítás optimalizálása JavaScriptben
Nem mindig szükséges egy sztringet tömbbre bontani, hogy valamit végezzünk vele. Nézzünk egy példát. Tegyük fel, hogy a következő kódunk van:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Miért rossz itt tömbvé bontani? Azért, mert először is, a processzor erőforrásait veszi igénybe a tömbvé alakítás, másodsorban a kapott tömb helyet foglal a operatív memóriában (ráadásul ez több lesz, mint a hely, amit maga a sztring foglal).
Hiszen valójában a for-of
ciklussal nem csak tömböket lehet bejárni,
hanem sztringeket is:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
A következő kód megtalálja a beviteli mezőbe írt szám számjegyeinek összegét. Végezze el az optimalizálást:
<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 következő kód megszámolja a betűk mennyiségét a sztringben. Végezze el az optimalizálást:
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
A következő kód ellenőrzi egy karakter jelenlétét a sztringben. Végezze el az optimalizálást:
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));