Skip to main content

Map

Использование Map в JavaScript как хеш-таблицы предоставляет более гибкие и мощные возможности по сравнению с Object.
Давайте разберем все, что нужно знать о Map при использовании его как хеш-таблицы, а также обсудим минусы этого подхода.

Создание

let map = new Map();

Добавление и удаление элементов

map.set("key", "value"); // Добавление или обновление значения
map.delete("key"); // Удаление ключа и значения

Доступ к элементам

let value = map.get("key"); // Получение значения

Проверка наличия ключа

if (map.has("key")) {
console.log("Key exists");
}

Итерация по ключам и значениям

// Итерация по ключам
for (let key of map.keys()) {
console.log(key);
}

// Итерация по значениям
for (let value of map.values()) {
console.log(value);
}

// Итерация по парам ключ-значение
for (let [key, value] of map.entries()) {
console.log(key, value);
}

// Итерация по парам ключ-значение с использованием forEach
map.forEach((value, key) => {
console.log(key, value);
});

Преобразования

Map в массив

let map = new Map();
map.set("key1", "value1");
map.set("key2", "value2");
map.set("key3", "value3");

// Получение массива ключей
let keys = Array.from(map.keys());
console.log(keys); // Output: ["key1", "key2", "key3"]

// Получение массива значений
let values = Array.from(map.values());
console.log(values); // Output: ["value1", "value2", "value3"]

// Получение массива пар ключ-значение
let entries = Array.from(map.entries());
console.log(entries); // Output: [["key1", "value1"], ["key2", "value2"], ["key3", "value3"]]

Массив в Map

let entries = [
["key1", "value1"],
["key2", "value2"],
["key3", "value3"],
];

let map = new Map(entries);
console.log(map); // Output: Map { 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' }

Минусы

  • Синтаксис Map может быть несколько сложнее по сравнению с Object.
  • Map может быть менее знаком разработчикам, особенно тем, кто работает с устаревшими версиями JavaScript.