JavaScriptда массивга айлантиришни оптимизациялаш
Ҳар доим сатрни ўзгартириш учун уни массивга ажратиш шарт эмас. Келгила, мисоллар билан кўрамиз. Бизда куйидаги код бор деб фараз қилайлик:
javascriptlet num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Нега бу ерда массивга ажратиш ёмон? Чунки, биринчи навбатда, массивга ажратиш процессор ресурсларини сарфлайди, иккинчидан, олинган массив оператив хотирада жойни эгаллайди (ва бу жой, сатрнинг ўзи эгаллаган жойдан катта бўлади).
Аслда for-of ёрдамида фақат
массивларни эмас, балки сатрларни ҳам
такрорлаш мумкин:
javascriptlet num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Задание 1
Куйидаги код инпутга киритилган соннинг рақамлари йиғиндисини топади. Оптимизацияни бажаринг:
html<input>javascriptlet 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);
});
Задание 2
Куйидаги код сатрдаги ҳарфлар сонини ҳисоблайди. Оптимизацияни бажаринг:
javascriptlet str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Задание 3
Куйидаги код сатрда белгининг мавжудлигини текширади. Оптимизацияни бажаринг:
javascriptlet str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));