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