> Что такое Map и Set в JavaScript (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Kvando Technologies, Soft_Media_Group, Kodix, IT-One, Библио-Глобус, Molecula, EPAM, Evercode, ООО Снэп АйТи
Стек: JavaScript
> Пример ответа
Map и Set - это встроенные коллекции в JavaScript, появившиеся в ES6 (ES2015), которые предоставляют более удобные и эффективные способы хранения данных по сравнению с обычными объектами и массивами.
Map - это коллекция пар «ключ-значение», где ключом может быть любой тип данных (включая объекты, функции, примитивы), в отличие от обычных объектов, где ключи преобразуются в строки. Основные методы: set(key, value) для добавления, get(key) для получения, has(key) для проверки наличия, delete(key) для удаления, clear() для очистки, а также свойство size. Map сохраняет порядок вставки элементов, что удобно при итерации (например, через forEach или for...of).
Пример:
JAVASCRIPTconst map = new Map();map.set('name', 'Alice');map.set(42, 'число');map.set({ id: 1 }, 'объект');console.log(map.get(42)); // 'число'console.log(map.size); // 3
Set - это коллекция уникальных значений (без дубликатов), где каждое значение может встречаться только один раз. Значениями могут быть любые типы данных. Основные методы: add(value) для добавления, has(value) для проверки, delete(value) для удаления, clear() для очистки, свойство size. Set также сохраняет порядок вставки.
Пример:
JAVASCRIPTconst set = new Set([1, 2, 3, 3, 4]);console.log(set); // Set { 1, 2, 3, 4 }set.add(5);console.log(set.has(3)); // true
Ключевые отличия от объектов и массивов:
-
Map эффективнее для частого добавления/удаления пар ключ-значение, особенно с нестроковыми ключами.
-
Set автоматически удаляет дубликаты, что упрощает фильтрацию уникальных значений.
-
Обе коллекции имеют удобный API и поддерживают итерацию напрямую, без преобразования в массив.
Используйте Map, когда нужна гибкая ассоциативная структура, и Set - для работы с уникальными элементами.
> Похожие задачи по frontend
Сколько типов данных в JavaScript и какие они
Что такое this в JavaScript и как он работает в объектах и функциях?
Что такое область видимости (scope) в JavaScript
Какие есть способы объявления функций в JavaScript и их особенности
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью