АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
4 of 17 menu

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