> Что такое 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).

Пример:

JAVASCRIPT
const 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 также сохраняет порядок вставки.

Пример:

JAVASCRIPT
const 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 - для работы с уникальными элементами.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью