Glossary overview

Map

Стаття: 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.