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