জাভাস্ক্রিপ্টে পুনরাবৃত্ত অপারেশন অপ্টিমাইজেশন
প্রায়শই novice programmers অচিন্তাভাবে একই ফাংশন একাধিকবার কল করে, সম্পদ নষ্ট করে।
এর একটি উদাহরণ দেখা যাক। ধরুন আমাদের একটি স্ট্রিং দেওয়া হয়েছে যাতে কিছু পাথ রয়েছে:
javascriptlet path = 'img.png';
ধরুন আমাদের কাজ হল পরীক্ষা করা যে
পাথটি এক্সটেনশন দিয়ে শেষ হয় কিনা
.png বা .jpg। কিছু
নবীন programmer নিম্নলিখিত
সমাধান লিখেছেন:
javascriptlet path = 'img.png';
if (path.slice(-4) === '.png' || path.slice(-4) === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
এই সমাধানটিতে কী সমস্যা? সমস্যা হল
যে slice পদ্ধতিটি দুইবার কল করা হচ্ছে,
একই কাজ করছে। এটি অবশ্যই
অপটিমাল নয়।
অপ্টিমাইজেশনের জন্য স্ট্রিংটি কাটা একবার সম্পন্ন করতে হবে, ফলাফলটি একটি ভেরিয়েবলে লিখতে হবে, তারপর এই ভেরিয়েবলটি পরে ব্যবহার করতে হবে:
javascriptlet path = 'img.png';
let ext = path.slice(-4);
if (ext === '.png' || ext === '.jpg') {
console.log('+++');
} else {
console.log('---');
}
Задание 1
নীচের কোডটি অপ্টিমাইজ করুন:
javascriptlet num = 123;
if (String(num)[0] === '1' || String(num)[0] === '2') {
console.log('+++');
} else {
console.log('---');
}
Задание 2
নীচের কোডটি অপ্টিমাইজ করুন:
javascriptlet date = new Date();
if (date.getDay() === 0 || date.getDay() === 6) {
console.log('weekend');
} else {
console.log('weekday');
}
Задание 3
নীচের কোডটি অপ্টিমাইজ করুন:
javascriptlet date = new Date();
let res;
if (date.getFullYear() >= 2020 && date.getFullYear() <= 2030) {
res = 'year ' + date.getFullYear() + ' fits';
} else {
res = 'year ' + date.getFullYear() + ' doesn't fit';
}
console.log(res)