Masavo konvertavimo į masyvą optimizavimas JavaScript
Ne visada reikia skaidyti eilutę į masyvą, kad ką nors su ja darytume. Pažiūrėkime pavyzdį. Tarkime, turime tokį kodą:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Kodėl čia skaidyti į masyvą yra blogai? Nes pirma, skaidymas į masyvą sunaudoja procesoriaus resursus, antra, gautas masyvas užims vietos operatyviojoje atmintyje (be to, ji bus didesnė nei vieta, kurią užima pati eilutė).
O juk iš tikrųjų naudojant for-of
galima kartoiti ne tik masyvus,
bet ir eilutes:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Tolesnis kodas ieško įvestų į input laukelį skaičių skaitmenų sumos. Atlikite optimizavimą:
<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);
});
Tolesnis kodas skaičiuoja raidžių kiekį eilutėje. Atlikite optimizavimą:
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Tolesnis kodas tikrina simbolio buvimą eilutėje. Atlikite optimizavimą:
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));