Set — это коллекция уникальных значений, где каждое значение может встречаться только один раз. В отличие от массивов, Set автоматически удаляет дубликаты и позволяет быстро проверять наличие элементов.
const set = new Set([1, 2, 2, 3, 3, 4]);
console.log(set); // Set { 1, 2, 3, 4 } (дубликаты удалены)
console.log(set.size); // 4
console.log(set.has(2)); // trueSet — как коробка для писем, где каждое письмо может лежать только в одном экземпляре. Если вы пытаетесь положить такое же письмо, оно просто не добавляется! Это удобно, когда нужно хранить только уникальные значения! 📮
Главные особенности Set:
// Создание Set
const numberSet = new Set();
// Добавление элементов
numberSet.add(1);
numberSet.add(2);
numberSet.add(2); // не добавится — дубликат!
console.log(numberSet); // Set { 1, 2 }
console.log(numberSet.size); // 2
// Проверка наличия
console.log(numberSet.has(1)); // true
console.log(numberSet.has(3)); // false
// Удаление
numberSet.delete(1);
console.log(numberSet.has(1)); // false// Удаление дубликатов из массива
const arrayWithDuplicates = [1, 2, 2, 3, 3, 4];
const uniqueArray = [...new Set(arrayWithDuplicates)];
console.log(uniqueArray); // [1, 2, 3, 4]const set = new Set(['a', 'b', 'c']);
console.log(set.size); // 3 (количество элементов)const set = new Set();
// add(value) — добавляет значение
set.add('значение');
// has(value) — проверяет наличие значения
const exists = set.has('значение');
// delete(value) — удаляет значение
set.delete('значение');
// clear() — очищает весь Set
set.clear();
// size — свойство, возвращает количество элементов
console.log(set.size);const set = new Set(['яблоко', 'банан', 'апельсин']);
// Перебор значений
for (const value of set) {
console.log(value);
}const set = new Set([1, 2, 3]);
set.forEach(value => {
console.log(value);
});// Список уникальных тегов
const tags = new Set();
tags.add('JavaScript');
tags.add('React');
tags.add('JavaScript'); // не добавится
console.log(tags); // Set { 'JavaScript', 'React' }// Быстрая проверка, есть ли значение
const allowedRoles = new Set(['админ', 'модератор', 'пользователь']);
function checkRole(role) {
return allowedRoles.has(role);
}
console.log(checkRole('админ')); // true
console.log(checkRole('гость')); // false// ❌ Ошибка — думать, что Set как массив
const set = new Set([1, 2, 3]);
// set[0]; // undefined! У Set нет индексов
// set.length; // undefined! У Set нет length
// ✅ Правильно — использовать методы Set
console.log(set.size); // 3
console.log(set.has(1)); // true// ❌ Ошибка — забыли new
// const set = Set(); // TypeError!
// ✅ Правильно
const set = new Set();Set — отличный выбор, когда нужно хранить только уникальные значения и быстро проверять их наличие! 💪
Хотите больше статей для подготовки к собеседованиям? Подписывайтесь на EasyAdvice, добавляйте сайт в закладки и совершенствуйтесь каждый день 💪