Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как перебрать массив с индексом

Короткий ответ

В forEach() функция получает индекс вторым аргументом:

['a', 'b', 'c'].forEach((value, index) => {
  console.log(index + ': ' + value);
});

Результат:

0: a
1: b
2: c

Цикл for...of

В for...of индекс даёт метод entries(). Такой цикл можно прервать через break:

for (const [index, value] of ['a', 'b', 'c'].entries()) {
  console.log(index + ': ' + value);
}

Результат:

0: a
1: b
2: c

Нумерация с единицы

Индексы начинаются с нуля. Для привычной нумерации прибавьте единицу:

['tea', 'milk'].forEach((item, index) => {
  console.log(index + 1 + '. ' + item);
});

Результат:

1. tea
2. milk

Частая ошибка

forEach() нельзя остановить через break, а return внутри него только пропускает текущий элемент. Если цикл нужно прервать, используйте for...of:

[1, 2, 3, 4].forEach((n) => {
  if (n > 2) return;
  console.log('forEach', n);
});
 
for (const n of [1, 2, 3, 4]) {
  if (n > 2) break;
  console.log('for...of', n);
}

Результат:

forEach 1
forEach 2
for...of 1
for...of 2

Функции из этого ответа

  • Array.prototype.forEach — Выполняет функцию для каждого элемента массива.
  • Array.prototype.entries — Возвращает пары индекс — элемент для перебора в цикле for...of.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.