Kekeliruan Kunci dan Elemen dalam Gelung for dalam JavaScript
Katakan diberikan array dengan nama bulan:
let arr = [
'Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun',
'Jul', 'Ogos', 'Sep', 'Okt', 'Nov', 'Dis'
];
Katakan dalam pembolehubah month disimpan
nombor bulan semasa:
let month = 10;
Mari kita gunakan gelung untuk memaparkan semua bulan, sementara bulan semasa akan dipaparkan dalam huruf condong.
Seorang pengaturcara telah menyelesaikan tugas ini,
namun, dia melakukan kesilapan dan tidak mengambil perhatian
bahawa dalam pembolehubah month
disimpan nombor bulan, bukan namanya:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // kesilapan di sini
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Pengaturcara kita membandingkan elemen array
dengan pembolehubah month. Tetapi dalam
pembolehubah ini disimpan nombor bulan,
bukan namanya!
Untuk kod berfungsi dengan betul,
perlu membandingkan month
dengan nombor bulan, iaitu
dengan nilai pembilang i:
for (let i = 0; i < arr.length; i++){
if (month === i) { // kesilapan telah dibetulkan
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}