TGViewer
Frontend | Вопросы собесов Frontend | Вопросы собесов @easy_javascript_ru · 17.6K subscribers
Post #922 5.29K
🤔 Что такое set и map?

Это встроенные коллекции в JavaScript, введенные в ECMAScript 2015 (ES6), которые предоставляют новые способы хранения и управления данными.

🚩Set

Это коллекция, которая позволяет хранить уникальные значения любого типа, будь то примитивы или объекты.

1⃣Создание Set
const set = new Set();
const setWithValues = new Set([1, 2, 3, 4, 5]);


2⃣Добавление элементов
set.add(1);
set.add(2);
set.add(2); // Игнорируется, т.к. 2 уже существует
console.log(set); // Set { 1, 2 }


3⃣Удаление элементов
set.delete(1);
console.log(set); // Set { 2 }


4⃣Проверка наличия элемента
console.log(set.has(2)); // true
console.log(set.has(3)); // false


5⃣Размер коллекции
console.log(set.size); // 1   


6⃣Итерация по элементам
set.forEach((value) => {
console.log(value);
});

for (let value of set) {
console.log(value);
}


🚩Map

Это коллекция, которая позволяет хранить пары ключ-значение. В отличие от обычных объектов, ключи в Map могут быть любого типа, включая функции, объекты и примитивы.

1⃣Создание Map
const map = new Map();
const mapWithValues = new Map([
['key1', 'value1'],
['key2', 'value2']
]);


2⃣Добавление элементов
map.set('key1', 'value1');
map.set('key2', 'value2');
console.log(map); // Map { 'key1' => 'value1', 'key2' => 'value2' }


3⃣Удаление элементов
map.delete('key1');
console.log(map); // Map { 'key2' => 'value2' }


4⃣Получение значения по ключу
console.log(map.get('key2')); // value2   


5⃣Проверка наличия ключа
console.log(map.has('key2')); // true
console.log(map.has('key1')); // false


6⃣Размер коллекции
console.log(map.size); // 1   


🚩Примеры использования

🟠Уникальные значения с Set
Если вам нужно хранить только уникальные значения, Set идеально подходит:
const numbers = [1, 2, 3, 4, 5, 5, 6, 7, 7, 8];
const uniqueNumbers = new Set(numbers);
console.log(uniqueNumbers); // Set { 1, 2, 3, 4, 5, 6, 7, 8 }


🟠Пары ключ-значение с Map
Если вам нужно хранить данные в формате ключ-значение и вам важна возможность использовать сложные типы данных в качестве ключей, Map — лучший выбор:
const userRoles = new Map();
const admin = { name: 'Admin' };
const editor = { name: 'Editor' };

userRoles.set(admin, 'admin');
userRoles.set(editor, 'editor');

console.log(userRoles.get(admin)); // admin
console.log(userRoles.get(editor)); // editor


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 26
More from @easy_javascript_ru
  1. Oct 13, 2026🤔 Что такое репозиторий? Это хранилище кода, файлов и их истории изменений. Используется…
  2. Oct 13, 2026🤔 Как мы можем замерить скорость работы участка кода с date.Now? В JavaScript можно замер…
  3. Oct 12, 2026Post #3039
  4. Oct 12, 2026🤔 Зачем нужен docker? Это инструмент для создания, развертывания и управления контейнерам…
  5. Oct 11, 2026🤔 Для чего нужен тег <noscript>? Он используется для отображения альтернативного контента…
  6. Oct 11, 2026🤔 Какими способами мы можем получить картинку с сервера? В веб-разработке есть разные спо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →