В чем разница между Map и Set?
Массивы и структуры данных
`Map` и `Set` — две коллекции ES6: `Map` хранит пары «ключ–значение», а `Set` — только уникальные значения.
Map — ключ–значение
- Хранит пары.
- Ключ любого типа.
- Доступ по ключу:
get/set.
const map = new Map();
map.set('id', 1);
map.get('id'); // 1Set — уникальные значения
- Хранит только значения (без ключей).
- Автоматически убирает дубликаты.
- Проверка наличия:
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 — для ассоциаций.