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
შემდეგი კოდი ეძებს input-ში შეყვანილი რიცხვის ციფრების ჯამს. შეასრულეთ ოპტიმიზაცია:
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'));