49. Set
JavaScript: Set - Уникальный набор данных
Заголовок раздела «JavaScript: Set - Уникальный набор данных»
Set в JavaScript – это структура данных, которая позволяет хранить только уникальные значения, независимо от их типа. Он полезен, когда вам нужно быстро проверить наличие элемента или удалить дубликаты из массива.
Что такое Set?
Заголовок раздела «Что такое Set?»Set – это объект, который хранит коллекцию значений, где каждое значение может встречаться только один раз. Порядок добавления элементов в Set сохраняется.
// Создание нового Setconst mySet = new Set();
// Добавление элементовmySet.add(1);mySet.add(2);mySet.add(3);mySet.add(1); // Этот элемент не будет добавлен, так как он уже есть
console.log(mySet); // Set(3) { 1, 2, 3 }Основные методы Set
Заголовок раздела «Основные методы Set»add(value): Добавляет новое значение в Set.delete(value): Удаляет значение из Set. Возвращаетtrue, если значение было удалено, иfalseв противном случае.has(value): Проверяет, есть ли значение в Set. Возвращаетtrueилиfalse.clear(): Удаляет все элементы из Set.size: Возвращает количество элементов в Set.
const mySet = new Set([1, 2, 3]);
console.log(mySet.has(2)); // trueconsole.log(mySet.delete(2)); // trueconsole.log(mySet.has(2)); // falseconsole.log(mySet.size); // 2
mySet.clear();console.log(mySet.size); // 0Итерация по Set
Заголовок раздела «Итерация по Set»Вы можете перебирать элементы Set с помощью цикла for...of или метода forEach.
const mySet = new Set(['apple', 'banana', 'cherry']);
// Используем for...offor (const item of mySet) { console.log(item);}
// Используем forEachmySet.forEach(item => { console.log(item);});Преобразование Set в массив
Заголовок раздела «Преобразование Set в массив»Иногда вам может потребоваться преобразовать Set обратно в массив. Это можно сделать с помощью оператора расширения (...).
const mySet = new Set([1, 2, 3]);const myArray = [...mySet];
console.log(myArray); // [1, 2, 3]Жизненный пример
Заголовок раздела «Жизненный пример»Set часто используется для удаления дубликатов из массивов. Например, при получении данных с сервера, которые могут содержать повторяющиеся записи.
const data = [1, 2, 2, 3, 4, 4, 5];
// Удаляем дубликаты с помощью Setconst uniqueData = [...new Set(data)];
console.log(uniqueData); // [1, 2, 3, 4, 5]В React часто применяют Set для отслеживания выбранных элементов в списке. Например, пользователь выбирает несколько элементов из списка, и нужно хранить только уникальные идентификаторы этих элементов.
// Пример в React (псевдокод)const [selectedItems, setSelectedItems] = React.useState(new Set());
const handleItemClick = (itemId) => { setSelectedItems(prevItems => { const newItems = new Set(prevItems); if (newItems.has(itemId)) { newItems.delete(itemId); } else { newItems.add(itemId); } return newItems; });};Ключевые моменты
Заголовок раздела «Ключевые моменты»- Set хранит только уникальные значения.
- Порядок добавления элементов сохраняется.
- Основные методы:
add,delete,has,clear,size. - Можно итерировать с помощью
for...ofиforEach. - Легко преобразуется в массив с помощью оператора расширения.
- Часто используется для удаления дубликатов и отслеживания уникальных элементов.