Стаття: https://uk.javascript.info/map-set
Map – это встроенный объект JavaScript, который позволяет хранить пары ключ-значение. В отличие от обычных объектов, в Map ключами могут быть значения любого типа (объекты, функции, примитивы и т.д.), а также сохраняется порядок их вставки.
Основные особенности Map
- Ключи любого типа:
В Map можно использовать в качестве ключей не только строки, но и объекты, числа, символы и даже другие Map. - Сохранение порядка вставки:
Элементы в Map сохраняют порядок, в котором они были добавлены. Это удобно, если важна последовательность перебора элементов. - Удобные методы:
Map предоставляет методы для управления элементами:set(key, value)– добавляет или обновляет элемент с указанным ключом.get(key)– возвращает значение, ассоциированное с ключом.has(key)– проверяет, существует ли элемент с таким ключом.delete(key)– удаляет элемент с указанным ключом.clear()– удаляет все элементы из Map.- Свойство
size– возвращает количество элементов в Map.
// Создание нового Map
const map = new Map();
// Добавление элементов
map.set('name', 'Alice');
map.set(1, 'one');
map.set(true, 'bool true');
// Можно использовать объекты в качестве ключей
const objKey = { id: 1 };
map.set(objKey, 'Object as key');
// Получение значения по ключу
console.log(map.get('name')); // "Alice"
console.log(map.get(1)); // "one"
console.log(map.get(true)); // "bool true"
console.log(map.get(objKey)); // "Object as key"
// Проверка наличия ключа
console.log(map.has('name')); // true
console.log(map.has('age')); // false
// Получение количества элементов
console.log(map.size); // 4
// Удаление элемента
map.delete(1);
console.log(map.has(1)); // false
// Перебор элементов Map
for (const [key, value] of map) {
console.log(key, value);
}
// Очистка Map
map.clear();
console.log(map.size); // 0
Мой пример 🧑💻
С помощью Map привязал в цикле EventListeners к элементам.
Преимущества использования Map
- Гибкость ключей:
Объекты в JavaScript автоматически приводят ключи к строкам, что может приводить к неожиданным результатам. Map позволяет избежать этой проблемы. - Производительность:
При большом количестве элементов Map может быть эффективнее при операциях добавления, удаления и поиска по ключу. - Удобство итерации:
Map поддерживает итераторы, что делает его удобным для перебора элементов через конструкцииfor...of, а также методыforEach.
