Збуњеност кључа и елемента у for петљи у JavaScript
Нека је дат низ са називима месеци:
let arr = [
'јан', 'феб', 'март', 'апр', 'мај', 'јун',
'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'
];
Нека у променљивој 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>');
}