Путаница ключа и элемента в цикле 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>');
}