Sobes.tech
Назад к вопросам
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
Назначение Хранение пар ключ-значение Хранение уникальных значений
Ключи Уникальные, любые типы Не используются
Значения Любые типы Уникальные, любые типы
Поиск По ключу Проверка наличия значения
Дубликаты Нет (для ключей) Нет (для значений)