Как и многие языки программирования, JavaScript имеет множество встроенных структур данных для управления различными типами данных. В то время как массивы и объекты часто используются чаще всего, наборы, функция, добавленная начиная с ES6, имеют определенные качества, делающие их полезными в определенных ситуациях.

Фундаментальным принципом набора JavaScript является его способность поддерживать уникальность. Набор предназначен для сбора эксклюзивных значений, и любое значение в наборе может появиться только один раз. Если будет попытка ввести дубликат, JavaScript пропустит его, оставив Set без изменений.

let programmingLanguages = new Set();
programmingLanguages.add('JavaScript');
programmingLanguages.add('Python');
programmingLanguages.add('JavaScript');

Несмотря на попытку дважды включить «JavaScript» в приведенном выше примере, набор вмещает его только один раз.

Универсальность наборов JavaScript заключается в их способности хранить различные типы данных, такие как строки, числа, объекты, массивы и даже другие наборы. Это дает вам гибкость в использовании различных типов данных в зависимости от требований вашего проекта.

let randomSet = new Set();
randomSet.add('Hello, World!');
randomSet.add(42);
randomSet.add({name: 'Alice', age: 30});
randomSet.add(['red', 'green', 'blue']);
randomSet.add(new Set([1, 2, 3]));

Приведенный выше пример иллюстрирует эклектическую природу набора, включающего различные типы данных в один набор.

Для перебора набора в JavaScript цикл for...of является несложным подходом:

let programmingLanguages = new Set(['JavaScript', 'Python', 'Java']);

for (let language of programmingLanguages) {
  console.log(language);
}

В приведенном выше коде перечислены все языки для консоли в той последовательности, в которой они были включены в набор.

JavaScript предоставляет несколько методов для изменения наборов:

  • add(value): Добавляет новое значение в набор.
  • delete(value): Исключает значение из набора.
  • has(value): проверяет наличие значения в наборе.
  • clear(): Отбрасывает все предметы из набора.
  • size: свойство, а не метод, который показывает общее количество элементов в наборе.

Одним из частых применений наборов является удаление повторяющихся значений из массива. Эта операция включает в себя преобразование массива в набор, а затем повторное преобразование его обратно в массив:

let numbers = [1, 2, 2, 3, 4, 4, 5];
let uniqueNumbers = [...new Set(numbers)];

В этом случае мы использовали оператор распространения (...), чтобы разделить набор на отдельные элементы и сформировать новый массив.

Таким образом, наборы JavaScript — это эффективное решение для управления данными, где уникальность является ключевым фактором. Они поставляются со встроенными методами, которые упрощают их использование, что делает их удобным активом в вашем наборе инструментов JavaScript.