Βελτιστοποίηση μετατροπής σε πίνακα στην JavaScript

Δεν είναι πάντα απαραίτητο να σπάσουμε μια συμβολοσειρά σε πίνακα για να κάνουμε κάτι με αυτήν. Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε τον ακόλουθο κώδικα:

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

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

console.log(sum);

Γιατί είναι κακή ιδέα να σπάσουμε σε πίνακα εδώ; Επειδή, πρώτον, η διαίρεση σε πίνακα καταναλώνει πόρους του επεξεργαστή, δεύτερον, ο προκύπτων πίνακας θα καταλαμβάνει χώρο στη μνήμη RAM (και μάλιστα περισσότερο χώρο από αυτόν που καταλαμβάνει η ίδια η συμβολοσειρά).

Εξάλλου, στην πραγματικότητα με το 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'));