JavaScript'те массивга айландырууну оптималдаштыруу
Ар дайым эле саты менен бир нерсе жасоо үчүн аны массивге бөлүү керек болбойт. Келгиле, мисал аркылуу карап көрөлү. Бизде төмөнкү код бар дейли:
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Бул жерде массивге бөлүү эмне үчүн жаман? Анткени, биринчиден, массивге бөлүү процессордун ресурстарын талап кылат, экинчиден, алынган массив оперативдик эстө орун ээлейт (ал саптын өзү ээлеген орундан көбүрөөк болот).
А чындыгында 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'));