जावास्क्रिप्ट में दोहराए जाने वाले ऑपरेशनों का अनुकूलन
अक्सर शुरुआती प्रोग्रामर बेमन से एक ही फ़ंक्शन को कई बार कॉल करते हैं, संसाधनों को बर्बाद करते हैं।
आइए एक उदाहरण देखें। मान लीजिए हमारे पास एक स्ट्रिंग है जिसमें कुछ पथ शामिल है:
let path = 'img.png';
मान लीजिए हमारे सामने यह जांचने का कार्य है,
क्या पथ एक्सटेंशन पर समाप्त होता है
.png या .jpg। कुछ
शुरुआती प्रोग्रामर ने निम्नलिखित
समाधान लिखा:
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)