Զանգվածի վերածելու օպտիմիզացիա 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-ում մուտքագրված թվի թվանշանների գումարը: Կատարեք օպտիմիզացիա.
<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'));