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

В чем разница между Map и Set?

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

`Map` и `Set` — две коллекции ES6: `Map` хранит пары «ключ–значение», а `Set` — только уникальные значения.

Map — ключ–значение

  • Хранит пары.
  • Ключ любого типа.
  • Доступ по ключу: get/set.
const map = new Map();
map.set('id', 1);
map.get('id'); // 1

Set — уникальные значения

  • Хранит только значения (без ключей).
  • Автоматически убирает дубликаты.
  • Проверка наличия: has.
const set = new Set([1, 2, 2, 3]);
set.has(2);  // true
set.size;    // 3

Общее

  • Значения/ключи любого типа.
  • Сохраняют порядок вставки.
  • Есть size, has, delete, итерация через for...of.
  • Есть «слабые» версии — WeakMap и WeakSet (ключи-объекты, не мешают сборке мусора).

Как выбрать

  • Нужна ассоциация «ключ → значение» → Map.
  • Нужен набор уникальных значений или дедупликация → Set.
const unique = [...new Set(array)]; // убрать дубликаты

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

Map — словарь пар «ключ–значение» с ключами любого типа; Set — коллекция уникальных значений. Оба хранят порядок, имеют size и быстрый поиск. Set — для уникальности, Map — для ассоциаций.

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