Это встроенные коллекции в 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
Ставь 👍 и забирай 📚 Базу знаний