PassFront
  1. PassFront
  2. База знаний
  3. Массивы и структуры данных

Что такое Map?

Массивы и структуры данных

`Map` — это коллекция пар «ключ–значение», где ключом может быть значение любого типа, включая объекты и функции, а порядок вставки сохраняется.

Отличия от обычного объекта

  • Ключи любого типа — не только строки/символы, но и объекты, числа, функции.
  • Порядок — гарантированно сохраняется порядок добавления.
  • Размер — свойство size вместо ручного подсчёта.
  • Итерируемость — работает с for...of, есть keys/values/entries.
  • Нет прототипных ключей — не мешают унаследованные свойства вроде toString.

API

const map = new Map();
map.set('name', 'Ann');
const key = {};
map.set(key, 'значение по объекту');

map.get('name');   // 'Ann'
map.has(key);      // true
map.size;          // 2
map.delete('name');

for (const [k, v] of map) {
  console.log(k, v);
}

Когда использовать Map

  • Ключи — не строки (например, объекты как ключи).
  • Часто добавляем/удаляем и нужен size.
  • Важен порядок и итерация.
  • Нужен «чистый словарь» без прототипа.

Когда достаточно объекта

  • Простая структура с известными строковыми ключами.
  • Нужна сериализация в JSON (Map в JSON не сериализуется напрямую).

Коротко для собеседования

Map — словарь с ключами любого типа, сохранением порядка, size и удобной итерацией. Лучше объекта, когда ключи не строки или важны порядок и частые изменения.

Другие вопросы раздела