Map
Коллекция пар ключ — значение, где ключом может быть что угодно.
Доступно с: ES2015
Синтаксис
new Map(entries)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| entries | Iterable | Необязательный. Массив пар [ключ, значение] для начального заполнения. |
Возвращаемое значение
MapНовая коллекция ключ — значение.
Примеры
Создание и чтение:
const ages = new Map([['Anna', 25], ['Oleg', 31]]);
console.log(ages.get('Anna'));
console.log(ages.size);Результат:
25
2Ключом может быть объект:
const visits = new Map();
const user = { name: 'Anna' };
visits.set(user, 3);
console.log(visits.get(user));Результат:
3Перебор в порядке добавления:
const ages = new Map([['Anna', 25], ['Oleg', 31]]);
for (const [name, age] of ages) {
console.log(`${name}: ${age}`);
}Результат:
Anna: 25
Oleg: 31Примечания
Чем Map лучше обычного объекта: ключи любого типа, размер в свойстве size, гарантированный порядок и нет унаследованных ключей вроде toString. Объект удобнее для фиксированного набора полей, Map — для словаря, который часто меняется.
JSON.stringify() превращает Map в {}. Перед сохранением преобразуйте его: Object.fromEntries(map).
См. также
- Map.prototype.set — Добавляет или заменяет значение по ключу.
- Map.prototype.get — Возвращает значение по ключу.
- Set — Коллекция уникальных значений.
- Object.fromEntries — Создаёт объект из списка пар ключ — значение.
Вопросы и ответы по теме
В учебнике
- Map и Set — Коллекции Map и Set в JavaScript: словарь с ключами любого типа и набор уникальных значений.