Назад к вопросам
Junior
88
questionbank
Для чего вы использовали структуры данных map и set в своей работе?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Map используется для хранения пар ключ-значение, где ключи уникальны. Удобно для быстрого поиска значения по ключу, например, для кеширования данных или связывания элементов DOM с их логическими представлениями.
Set используется для хранения коллекции уникальных значений. Полезен для удаления дубликатов из массива, проверки наличия элемента в коллекции или подсчета уникальных элементов.
Примеры использования:
- Отслеживание активных пользователей по их ID в Map для быстрого доступа к их данным.
- Создание коллекции уникальных тегов из списка статей с помощью Set.
- Кэширование результатов вызова функций: ключ — аргументы, значение — результат.
- Удаление повторяющихся элементов в списке идентификаторов.
// Пример использования Map
const userCache = new Map();
function getUserData(userId) {
if (userCache.has(userId)) {
console.log("Data from cache");
return userCache.get(userId);
}
// Имитация запроса к API
const userData = { id: userId, name: `User ${userId}` };
userCache.set(userId, userData);
console.log("Data from API, added to cache");
return userData;
}
getUserData(1);
getUserData(1);
getUserData(2);
// Пример использования Set
const tags = ['javascript', 'css', 'html', 'javascript', 'react', 'css'];
const uniqueTags = new Set(tags);
console.log([...uniqueTags]); // ['javascript', 'css', 'html', 'react']
console.log(uniqueTags.has('angular')); // false
Таблица сравнения Map и Set:
| Feature | Map | Set |
|---|---|---|
| Назначение | Хранение пар ключ-значение | Хранение уникальных значений |
| Ключи | Уникальные, любые типы | Не используются |
| Значения | Любые типы | Уникальные, любые типы |
| Поиск | По ключу | Проверка наличия значения |
| Дубликаты | Нет (для ключей) | Нет (для значений) |