JavaScript'te for Döngüsünde Anahtar ve Eleman Karışıklığı
Ayların isimlerini içeren bir dizi verilsin:
let arr = [
'Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz',
'Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'
];
Değişkende month
mevcut ayın numarası saklansın:
let month = 10;
Bir döngü kullanarak tüm ayları çıktılayalım, bu arada mevcut ayı italik olarak çıktılayalım.
Bir programcı bu sorunu zaten çözmüş,
ancak, month değişkeninde
ayın adı değil, numarası saklandığına
dikkat etmeyerek hata yapmış:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // hata burada
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Programcımız, dizi elemanını
month değişkeniyle karşılaştırıyor.
Ama bu değişkende ayın adı değil,
numarası saklanıyor!
Kodun doğru çalışması için,
month değişkenini ayın numarasıyla,
yani sayaç değişkeni i'nin değeriyle
karşılaştırmak gerekir:
for (let i = 0; i < arr.length; i++){
if (month === i) { // hatayı düzelttik
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}