Что такое Map в JavaScript, какие у него свойства и методы и как его перебрать?

Map: особенности, свойства, методы, перебор структура данных для хранения пар ключ-значение ключом может быть значение любого типа, в том числе объект элементы обходятся в порядке их добавления основные методы:…

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

Что ответить на собеседовании

Map: особенности, свойства, методы, перебор структура данных для хранения пар ключ-значение ключом может быть значение любого типа, в том числе объект элементы обходятся в порядке их добавления основные методы: set(key, value) — добавляет или изменяет пару get(key) — возвращает значение по ключу has(key) — определяет, существует ли ключ delete(key) — удаляет элемент по ключу clear() — удаляет все элементы size — число элементов перебор с помощью: for...of map (итерация по [key, value]) методов map.keys(), map.values(), map.entries() подходит для быстрой итерируемой ассоциативной коллекции, превосходя объект гибкостью ключей и…

Подробный разбор

Ответ с пояснениями

Map: особенности, свойства, методы, перебор

  • структура данных для хранения пар ключ-значение
  • ключом может быть значение любого типа, в том числе объект
  • элементы обходятся в порядке их добавления
  • основные методы:
  • set(key, value) — добавляет или изменяет пару
  • get(key) — возвращает значение по ключу
  • has(key) — определяет, существует ли ключ
  • delete(key) — удаляет элемент по ключу
  • clear() — удаляет все элементы
  • size — число элементов
  • перебор с помощью:
  • for...of map (итерация по [key, value])
  • методов map.keys(), map.values(), map.entries()
  • подходит для быстрой итерируемой ассоциативной коллекции, превосходя объект гибкостью ключей и предсказуемостью порядка

Если нужно — могу подготовить максимально краткий "шпаргалочный" вариант для реального интервью.

Подробный ответ

Основной ответ

Map — встроенная структура данных JavaScript, добавленная в стандарт ES6. Она хранит пары ключ-значение и соблюдает порядок вставки. В отличие от обычного объекта, Map допускает ключи любых типов: объекты, функции и примитивные значения. Благодаря этому коллекция универсальна и предсказуема при переборе.

Ключевые моменты

  • Ключи любого типа: Map не преобразует ключи в строки, поэтому map.set({}, 'value') и map.get({}) обращаются к разным элементам.
  • Порядок элементов: при переборе Map записи возвращаются в последовательности их добавления, что обеспечивает предсказуемое поведение итератора.
  • Основные методы:
  • set(key, value) — добавляет новую пару или обновляет существующую
  • get(key) — возвращает значение ключа либо undefined, если ключ отсутствует
  • has(key) — проверяет существование ключа и возвращает булево значение
  • delete(key) — удаляет ключ вместе с соответствующим значением
  • clear() — удаляет все записи Map
  • Свойства:
  • size — количество пар ключ-значение в Map
  • Перебор:
  • Для перебора Map можно вызвать map.forEach(callback) или использовать for...of с деструктуризацией: js for (const [key, value] of map) { // действия с key и value }
  • Для итераций также предназначены map.keys() (итератор ключей), map.values() (итератор значений) и map.entries() (итератор пар).

Практический контекст

Map применяют, когда нужна эффективная итерируемая коллекция с ключами произвольного типа: например, для кешей, кеширования результатов функций и связей между объектами. В React 18+ и Node.js 16+ эта структура удобна для хранения связанного состояния без преобразования ключей в строки и с сохранением порядка.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку