Muunnoksen optimointi taulukoksi JavaScriptissä

Ei aina tarvitse pilkkoa merkkijonoa taulukoksi tehdäkseen sillä jotain. Katsotaanpa esimerkkiä. Olkoon meillä seuraava koodi:

javascriptlet 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:

javascriptlet num = 123456789;
let str = String(num);
let sum = 0;

for (let char of str) {
  sum += +char;
}

console.log(sum);
Задание 1

Seuraava koodi etsii syötetyn luvun numeroiden summan. Suorita optimointi:

html<input>
javascriptlet 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);
});
Задание 2

Seuraava koodi laskee merkkien määrän merkkijonossa. Suorita optimointi:

javascriptlet str = 'abcaab';
let arr = str.split('');

let i = 0;

for (let elem of arr) {
  if (elem == 'a') {
    i++;
  }
}

console.log(i);
Задание 3

Seuraava koodi tarkistaa merkin esiintymisen merkkijonossa. Suorita optimointi:

javascriptlet str = 'abcaab';
let arr = str.split('');

console.log(arr.includes('a'));