Optimasi Konversi ke Array dalam JavaScript

Tidak selalu perlu memecah string menjadi array untuk melakukan sesuatu pada string tersebut. Mari kita lihat contohnya. Misalkan kita memiliki kode berikut:

javascriptlet num = 123456789;
let arr = String(num).split('');
let sum = 0;

for (let elem of arr) {
  sum += +elem;
}

console.log(sum);

Mengapa memecah menjadi array di sini buruk? Karena, pertama-tama, pemecahan menjadi array menghabiskan sumber daya prosesor, kedua, array yang dihasilkan akan memakan tempat di memori RAM (bahkan jumlahnya akan lebih besar dari tempat yang ditempati oleh string itu sendiri).

Padahal sebenarnya dengan menggunakan for-of kita dapat mengulang tidak hanya array, tetapi juga string:

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

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

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

Kode berikut mencari jumlah digit dari angka yang dimasukkan ke dalam input. Lakukan optimasi:

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

Kode berikut menghitung jumlah huruf dalam string. Lakukan optimasi:

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

let i = 0;

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

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

Kode berikut memeriksa keberadaan simbol dalam string. Lakukan optimasi:

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

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