Map. В чем особенность? Какие свойства и методы есть? Как перебрать?
Этот вопрос проверяет знание структуры данных Map в JavaScript, ее свойств, методов и способов перебора элементов.
Короткий ответ
Map — это коллекция, которая хранит пары ключ-значение и позволяет использовать ключи любого типа, в отличие от обычных объектов. Она имеет методы для добавления, удаления и получения элементов, такие как set(), get(), delete() и has(). Перебирать элементы в Map можно с помощью методов forEach() или с помощью цикла for...of, что делает работу с этой структурой данных удобной и гибкой.
Длинный ответ
Map в JavaScript — это встроенная структура данных, предназначенная для хранения пар ключ-значение. Она предлагает несколько особенностей и преимуществ по сравнению с обычными объектами:
Ключи любого типа: В отличие от объектов, где ключи могут быть только строками или символами, Map позволяет использовать любые типы данных в качестве ключей, включая функции, объекты и даже другие карты.
const myMap = new Map();
myMap.set({}, 'value'); // Ключ — объект
myMap.set('stringKey', 'value'); // Ключ — строка
myMap.set(42, 'value'); // Ключ — числоМетоды Map:
set(key, value): Добавляет или обновляет элемент с указанным ключом.
get(key): Возвращает значение по указанному ключу.
has(key): Проверяет, существует ли указанный ключ.
delete(key): Удаляет элемент по указанному ключу.
clear(): Удаляет все элементы из карты.
size: Свойство, возвращающее количество пар ключ-значение в Map.
Перебор элементов: Map предоставляет несколько способов перебора своих элементов:
Метод forEach():
myMap.forEach((value, key) => {
console.log(`${key}: ${value}`);
});Цикл for...of:
for (const [key, value] of myMap) {
console.log(`${key}: ${value}`);
}Методы keys(), values(), entries():
for (const key of myMap.keys()) {
console.log(key);
}
for (const value of myMap.values()) {
console.log(value);
}
for (const [key, value] of myMap.entries()) {
console.log(`${key}: ${value}`);
}Map является особенно полезной структурой, когда важно сохранять порядок вставки элементов, а также обеспечивать эффективный доступ по ключам. Это делает Map отличным выбором для реализации кэшей и других структур данных, где требуются быстрые операции поиска, добавления и удаления.