Optimalisatie van conversie naar array in JavaScript

Het is niet altijd nodig om een string op te splitsen in een array om er iets mee te doen. Laten we een voorbeeld bekijken. Stel dat we de volgende code hebben:

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

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

console.log(sum);

Waarom is het hier slecht om op te splitsen in een array? Omdat het, ten eerste, processorbronnen kost om naar een array om te zetten, en ten tweede, de resulterende array ruimte in het werkgeheugen zal innemen (en dat zal meer zijn dan de ruimte die de string zelf inneemt).

Maar in werkelijkheid kan met for-of niet alleen arrays worden doorlopen, maar ook strings:

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

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

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

De volgende code zoekt de som van de cijfers van een ingevoerd getal in een input. Voer optimalisatie uit:

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

De volgende code telt het aantal letters in een string. Voer optimalisatie uit:

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

let i = 0;

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

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

De volgende code controleert op de aanwezigheid van een symbool in een string. Voer optimalisatie uit:

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

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