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.