Optimierung der Array-Konvertierung in JavaScript

Es ist nicht immer notwendig, einen String in ein Array aufzuteilen, um etwas mit ihm zu tun. Schauen wir uns ein Beispiel an. Nehmen wir den folgenden Code:

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

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

console.log(sum);

Warum ist das Aufteilen in ein Array hier schlecht? Weil, erstens, das Aufteilen in ein Array Prozessorressourcen verbraucht, und zweitens, das resultierende Array Speicherplatz im Arbeitsspeicher belegen wird (und zwar mehr, als der Platz, den der String selbst belegt).

Denn tatsächlich kann man mit for-of nicht nur Arrays durchlaufen, sondern auch Strings:

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

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

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

Der folgende Code sucht die Summe der Ziffern einer eingegebenen Zahl in einem Input. Führen Sie eine Optimierung durch:

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

Der folgende Code zählt die Anzahl der Buchstaben in einem String. Führen Sie eine Optimierung durch:

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

let i = 0;

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

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

Der folgende Code prüft das Vorhandensein eines Symbols in einem String. Führen Sie eine Optimierung durch:

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

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