Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: Map, iteration, for...of, forEach, keys, values

Как итерироваться по Map?

Этот вопрос проверяет знание методов перебора коллекции Map в JavaScript, что важно для работы со структурами данных, где ключи могут быть любого типа.

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

Для итерации по Map в JavaScript можно использовать несколько методов. Самый распространённый — цикл for...of, который позволяет получить пары [ключ, значение] напрямую. Также можно использовать метод map.forEach(), передав в него функцию-колбэк. Если нужны только ключи или только значения, можно сначала получить итераторы через map.keys() или map.values(), а затем пройтись по ним.

Длинный ответ

Map в JavaScript — это коллекция пар ключ-значение, где ключи могут быть любого типа (в отличие от обычных объектов). Для перебора её элементов существует несколько удобных способов.

1. Цикл for...of с деструктуризацией

Этот метод позволяет получить доступ и к ключу, и к значению в каждой итерации. Map является итерируемым объектом, и при использовании for...of он возвращает пары [ключ, значение].

const myMap = new Map([
  ['name', 'Alice'],
  [42, 'The Answer'],
  [{ id: 1 }, 'Object Key']
]);

for (const [key, value] of myMap) {
  console.log(key, '->', value);
}
// Вывод:
// 'name' -> 'Alice'
// 42 -> 'The Answer'
// { id: 1 } -> 'Object Key'

2. Метод forEach()

Map также предоставляет знакомый метод forEach, аналогичный массивам. Он принимает функцию-колбэк, которой передаются значение, ключ и сама коллекция Map.

myMap.forEach((value, key) => {
  console.log(`Ключ ${key} соответствует значению ${value}`);
});

3. Итераторы keys(), values() и entries()

Вы можете получить итераторы для отдельных частей коллекции:

  • map.keys() — возвращает итератор по ключам.
  • map.values() — возвращает итератор по значениям.
  • map.entries() — возвращает итератор по парам [ключ, значение] (используется по умолчанию в for...of).
Эти итераторы можно использовать с for...of или преобразовать в массив с помощью Array.from().

// Получить все ключи в виде массива
const allKeys = Array.from(myMap.keys());
console.log(allKeys); // ['name', 42, { id: 1 }]

// Итерация только по значениям
for (const val of myMap.values()) {
  console.log(val);
}

Где это применяется?

Итерация по Map часто нужна при обработке данных, где важна гарантированная порядковая последовательность элементов (порядок в Map соответствует порядку добавления). Это полезно в кэшировании, конфигурациях, хранении связанных данных с нестроковыми ключами.

Вывод: Используйте for...of для простого перебора всех пар, forEach для функционального стиля, а методы keys()/values() — когда нужны только ключи или значения. Выбор метода зависит от конкретной задачи и стиля кода.

Уровень

  • Рейтинг:

    3

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#Map

#iteration

#for...of

#forEach

#keys

#values

Подпишись на Java Developer в телеграм