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'));