логотип PurpleSchool
Иконка входа
Вход
логотип PurpleSchool

Объект Map в JavaScript

Автор

Дмитрий Нечаев

В JavaScript объект Map представляет собой коллекцию, которая позволяет хранить данные в виде пар ключ-значение. Ключи могут быть любого типа данных, включая примитивы, объекты или функции, что делает Map очень гибкой и удобной для различных сценариев программирования. Давайте подробнее рассмотрим особенности работы с коллекцией Map в JavaScript.

Создание Map

Для создания нового объекта Map используется конструктор Map(). Пустой объект Map можно создать без аргументов, а также можно передать массив или другой итерируемый объект, чтобы скопировать его элементы в новую коллекцию Map.

// Создание пустого объекта Map
const map = new Map();

// Создание объекта Map из массива
const array = [['ключ1', 'значение1'], ['ключ2', 'значение2']];
const mapFromArray = new Map(array);
console.log(mapFromArray); // Выведет: Map(2) { 'ключ1' => 'значение1', 'ключ2' => 'значение2' }

Добавление и получение значений

Данные можно добавлять в Map с помощью метода set(), указывая ключ и значение. Затем можно получить значение, используя ключ с помощью метода get(). Если ключ уже существует в Map, метод set() перезапишет значение для этого ключа.

// Добавление значений в Map
map.set('ключ1', 'значение1');
map.set('ключ2', 'значение2');

// Получение значения по ключу
console.log(map.get('ключ1')); // Выведет: значение1

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

Для проверки наличия ключа в Map используется метод has(), который возвращает логическое значение true, если ключ существует в Map, и false в противном случае.

console.log(map.has('ключ1')); // Выведет: true
console.log(map.has('ключ3')); // Выведет: false

Удаление ключа

Ключ и его соответствующее значение можно удалить из Map с помощью метода delete(). Этот метод возвращает логическое значение true, если ключ успешно удален, и false, если ключ не был найден в Map.

console.log(map.delete('ключ1')); // Выведет: true
console.log(map); // Выведет: Map(1) { 'ключ2' => 'значение2' }

Итерация по Map

Для итерации по коллекции Map можно использовать цикл for...of или метод forEach(). При этом каждый элемент Map представляет собой массив [ключ, значение].

// Итерация с помощью цикла for...of
for (const [key, value] of map) {
    console.log(`${key}: ${value}`);
}

// Итерация с помощью метода forEach()
map.forEach((value, key) => {
    console.log(`${key}: ${value}`);
});

Размер Map

Для определения количества элементов в Map используется свойство size.

console.log(map.size); // Выведет: 1

Преобразование Map в массивы

Коллекцию Map можно преобразовать в массивы ключей, значений или пар ключ-значение.

// Преобразование Map в массив ключей
const keysArray = Array.from(map.keys());
console.log(keysArray); // Выведет: ['ключ2']

// Преобразование Map в массив значений
const valuesArray = Array.from(map.values());
console.log(valuesArray); // Выведет: ['значение2']

// Преобразование Map в массив пар ключ-значение
const entriesArray = Array.from(map.entries());
console.log(entriesArray); // Выведет: [ ['ключ2', 'значение2'] ]

Преимущества использования Map

Коллекция Map предоставляет эффективный способ хранения данных в виде пар ключ-значение. Она обеспечивает быстрый доступ к значениям по ключу и позволяет хранить любые типы данных в качестве ключей и значений. Map также является итерируемой коллекцией, что делает ее удобной для использования в циклах и методах массивов.

Заключение

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

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile