Вопрос проверяет понимание различий между Map и Object в JavaScript и умение выбирать подходящую структуру данных для конкретных задач.
В JavaScript Object и Map — это две разные структуры данных для хранения пар ключ-значение. Хотя Object является фундаментальной частью языка, Map предоставляет ряд преимуществ в определённых сценариях.
// Использование Map с объектами в качестве ключей
const map = new Map();
const objKey = { id: 1 };
map.set(objKey, 'value');
console.log(map.get(objKey)); // 'value'
// Object не может использовать объект как ключ
const obj = {};
obj[objKey] = 'value'; // ключ станет строкой '[object Object]'
// Map сохраняет порядок вставки
const orderedMap = new Map();
orderedMap.set('b', 2);
orderedMap.set('a', 1);
console.log([...orderedMap.keys()]); // ['b', 'a']
// Object может изменить порядок
const orderedObj = {};
orderedObj['b'] = 2;
orderedObj['a'] = 1;
console.log(Object.keys(orderedObj)); // ['b', 'a'] (но не гарантировано)Вывод: Используйте Map, когда вам нужна гибкость в типах ключей, гарантированный порядок или высокая производительность при частых изменениях. Object остаётся лучшим выбором для простых, статичных структур и при работе с JSON.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию