JavaScript-এ for লুপে কী এবং উপাদান বিভ্রান্তি
মাসের নাম সহ একটি অ্যারে দেওয়া যাক:
let arr = [
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
];
ধরুন ভেরিয়েবল month-এ
বর্তমান মাসের নম্বর সংরক্ষিত আছে:
let month = 10;
আসুন একটি লুপ ব্যবহার করে সমস্ত মাস আউটপুট করি, এবং বর্তমান মাসটি বাঁকা হরফে আউটপুট করি।
কোনো একজন প্রোগ্রামার ইতিমধ্যেই এই সমস্যার সমাধান করেছেন,
যাইহোক, তিনি ভুল করেছেন এবং খেয়াল করেননি
যে month ভেরিয়েবলে
মাসের নাম নয়, মাসের নম্বর সংরক্ষিত আছে:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // ভুল এখানে
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
আমাদের প্রোগ্রামার অ্যারের উপাদানটির তুলনা করছেন
month ভেরিয়েবলের সাথে। কিন্তু এই
ভেরিয়েবলে তো মাসের নাম নয়,
মাসের নম্বর সংরক্ষিত আছে!
কোডটি সঠিকভাবে কাজ করার জন্য,
month-এর তুলনা করতে হবে
মাসের নম্বরের সাথে, অর্থাৎ
কাউন্টার i-এর মানের সাথে:
for (let i = 0; i < arr.length; i++){
if (month === i) { // ভুল সংশোধন করা হয়েছে
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}