Pārveidošanas optimizēšana masīvā JavaScript
Ne vienmēr ir nepieciešams sadalīt virkni masīvā, lai ar to kaut ko izdarītu. Apskatīsim piemēru. Pieņemsim, ka mums ir šāds kods:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Kāpēc šeit sadalīšana masīvā ir slikta? Tāpēc ka, pirmkārt, sadalīšanai masīvā tiek tērēti procesora resursi, otrkārt, iegūtais masīvs aizņems vietu operatīvajā atmiņā (turklāt tā būs lielāka nekā vieta, ko aizņem pati virkne).
Patiesībā ar for-of
var iterēt ne tikai masīvus,
bet arī virknes:
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Šis kods meklē ievadītā skaitļa ciparu summu input laukā. Veiciet optimizāciju:
<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);
});
Šis kods saskaita burtu daudzumu virknē. Veiciet optimizāciju:
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Šis kods pārbauda simbola esamību virknē. Veiciet optimizāciju:
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));