Что такое 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 и удобной итерацией. Лучше объекта, когда ключи не строки или важны порядок и частые изменения.