Аптымізацыя пераўтварэння ў масіў у JavaScript

Не заўсёды трэба разбіваць радок у масіў, каб нешта з ёй зрабіць. Давайце паглядзім на прыкладзе. Хай у нас ёсць наступны код:

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

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

console.log(sum);

Чаму тут разбіваць у масіў дрэнна? Таму што, па-першае, на разбіццё ў масіў трацяцца рэсурсы працэсара, па-другое, атрыманы масіў будзе займаць месца ў аператыўнай памяці (прычым яно будзе больш, чым месца, якое займае сам радок).

А бо на самой справе з дапамогай for-of можна перабіраць не толькі масівы, але і радкі:

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

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

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

Наступны код шукае суму лічбаў уведзенага ў інпут ліку. Выканайце аптымізацыю:

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

Наступны код падлічвае колькасць літар у радку. Выканайце аптымізацыю:

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

let i = 0;

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

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

Наступны код правярае наяўнасць сімвала ў радку. Выканайце аптымізацыю:

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

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