Βελτιστοποίηση μετατροπής σε πίνακα στην JavaScript
Δεν είναι πάντα απαραίτητο να σπάσουμε μια συμβολοσειρά σε πίνακα για να κάνουμε κάτι με αυτήν. Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε τον ακόλουθο κώδικα:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Γιατί είναι κακή ιδέα να σπάσουμε σε πίνακα εδώ; Επειδή, πρώτον, η διαίρεση σε πίνακα καταναλώνει πόρους του επεξεργαστή, δεύτερον, ο προκύπτων πίνακας θα καταλαμβάνει χώρο στη μνήμη RAM (και μάλιστα περισσότερο χώρο από αυτόν που καταλαμβάνει η ίδια η συμβολοσειρά).
Εξάλλου, στην πραγματικότητα με το for-of
μπορούμε να επαναλαμβάνουμε όχι μόνο πίνακες,
αλλά και συμβολοσειρές:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Ο ακόλουθος κώδικας βρίσκει το άθροισμα των ψηφίων ενός αριθμού που εισάγεται σε ένα πεδίο εισόδου. Εκτελέστε βελτιστοποίηση:
<input>
let 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);
});
Ο ακόλουθος κώδικας μετράει την ποσότητα γραμμάτων σε μια συμβολοσειρά. Εκτελέστε βελτιστοποίηση:
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Ο ακόλουθος κώδικας ελέγχει την ύπαρξη ενός συμβόλου σε μια συμβολοσειρά. Εκτελέστε βελτιστοποίηση:
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));