Rakto ir elemento supainiojimas for cikle JavaScript
Tegu duotas masyvas su mėnesių pavadinimais:
let arr = [
'Saus', 'Vas', 'Kov', 'Bal', 'Geg', 'Birž',
'Liep', 'Rugp', 'Rugs', 'Spa', 'Lapkr', 'Gruod'
];
Tegu kintamajame month saugomas
dabartinio mėnesio numeris:
let month = 10;
Naudodami ciklą išveskime visus mėnesius, o dabartinį mėnesį išveskime kursyvu.
Kažkoks programuotojas jau išsprendė šią užduotį,
tačiau jis suklydo ir neatsižvelgė į tai,
kad kintamajame month
saugomas mėnesio numeris, o ne jo pavadinimas:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // klaida čia
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Mūsų programuotojas lygina masyvo elementą
su kintamuoju month. Bet juk šiame
kintamajame saugomas mėnesio numeris,
o ne jo pavadinimas!
Kad kodas veiktų teisingai,
reikia lyginti month
su mėnesio numeriu, tai yra
su skaitiklio reikšme i:
for (let i = 0; i < arr.length; i++){
if (month === i) { // ištaisėme klaidą
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}