Muunnoksen optimointi taulukoksi JavaScriptissä
Ei aina tarvitse pilkkoa merkkijonoa taulukoksi tehdäkseen sillä jotain. Katsotaanpa esimerkkiä. Olkoon meillä seuraava koodi:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Miksi on huonoa pilkkoa tässä taulukoksi? Koska ensinnäkin, taulukoksi pilkkomiseen kuluu prosessoriresursseja, toiseksi, saatu taulukko vie tilaa keskusmuistista (ja se on enemmän kuin tila, jonka merkkijono itsessään vie).
Loppujen lopuksi for-of:lla
voi iteroida ei vain taulukoita,
vaan myös merkkijonoja:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Seuraava koodi etsii syötetyn luvun numeroiden summan. Suorita optimointi:
<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);
});
Seuraava koodi laskee merkkien määrän merkkijonossa. Suorita optimointi:
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Seuraava koodi tarkistaa merkin esiintymisen merkkijonossa. Suorita optimointi:
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));