логотип PurpleSchool
логотип PurpleSchool

Множество в JavaScript

Автор

Дмитрий Фандорин

Множество (Set) - это коллекция в языке программирования JavaScript, которая используется для хранения уникальных значений любых типов данных. Это означает, что каждый элемент в множестве может иметь только одно уникальное значение, и повторяющиеся значения будут игнорироваться.

Создание коллекции

Для создания нового множества в JavaScript мы можем использовать следующий синтаксис: const mySet = new Set(); Также мы можем передать массив в конструктор Set, чтобы создать множество со значениями из массива: const mySet = new Set([1, 2, 3, 3, 4, 5]); console.log(mySet); // Set(5) {1, 2, 3, 4, 5}

Работа с коллекцией

Множество имеет ряд методов для работы с элементами:

  • add(value)
    • добавляет новый элемент в множество.
  • delete(value)
    • удаляет элемент из множества.
  • has(value)
    • проверяет, содержит ли множество заданный элемент.
  • clear()
    • удаляет все элементы из множества.

Например, мы можем добавить и удалить элементы из множества следующим образом: const mySet = new Set(); mySet.add("apple"); mySet.add("banana"); mySet.add("orange"); console.log(mySet); // Set(3) {"apple", "banana", "orange"} mySet.delete("banana"); console.log(mySet); // Set(2) {"apple", "orange"} console.log(mySet.has("apple")); // true console.log(mySet.has("banana")); // false

Обход

Множество не имеет индексов, поэтому мы не можем обратиться к элементам по индексу, как в массиве. Вместо этого мы можем использовать метод forEach, который позволяет обойти каждый элемент множества и выполнить некоторое действие для каждого элемента: const mySet = new Set([1, 2, 3]); mySet.forEach((value) => { console.log(value); }); // выводит: // 1 // 2 // 3

Особенности работы с непримитивными типами

При работе с множеством мы сталкиваемся с особенностями работы с непримитивными типами данных, такими как объекты и массивы. При добавлении объекта в множество, мы добавляем ссылку на объект, а не сам объект. Это означает, что если мы изменяем свойства объекта, который был добавлен в множество, то изменения будут видны и в множестве. Также мы можем добавлять в множество массивы, но при сравнении элементов множества будут использоваться ссылки на массивы, а не их содержимое.

Например: const obj1 = { name: "John" }; const obj2 = { name: "Jane" }; const mySet = new Set(); mySet.add(obj1); mySet.add(obj2); obj1.name = "Jack"; console.log(mySet); // Set(2) {{"name":"Jack"},{"name":"Jane"}}

Заключение

Множество в языке программирования JavaScript - это удобная коллекция для хранения уникальных значений любых типов данных. Множество имеет ряд методов для работы с элементами и может быть использовано для решения различных задач в программировании. Однако, при работе с непримитивными типами данных необходимо учитывать особенности их работы в множестве.

Стрелочка влевоКонструктор Set в JavaScriptkeys() в JavaScriptСтрелочка вправо

Все гайды по Javascript

Как работает метод trim() - JavaScriptКак работает метод toUpperCase() - JavaScriptКак работает метод substring() - JavaScriptКак работает метод toLowerCase() - JavaScriptКак работает метод startsWith() - JavaScriptКак работает метод split() - JavaScriptКак работает метод slice() - JavaScriptКак работает метод search() - JavaScriptКак работает метод replaceAll() - JavaScriptКак работает метод replace() - JavaScriptКак работает метод repeat() - JavaScriptКак работает метод padStart() - JavaScriptКак работает метод padEnd() - JavaScriptКак работает метод matchAll() - JavaScriptКак работает метод match() - JavaScriptКак работает метод localeCompare() - JavaScriptКак работает свойство length - JavaScriptКак работает метод lastIndexOf() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод fromCodePoint() - JavaScriptКак работает метод fromCharCode() - JavaScriptКак работает метод endsWith() - JavaScriptКак работает метод concat() - JavaScriptКак работает метод codePointAt() - JavaScriptКак работает метод charCodeAt() - JavaScriptКак работает метод charAt() - JavaScript
Итератор в JavaScript
try...catch в JavaScriptError в JavaScript
Событие unload в JavaScriptСобытие wheel в JavaScriptСобытие touch в JavaScriptСобытие submit в JavaScriptСобытие scroll в JavaScriptСобытие reset в JavaScriptМетод .preventDefault() в JavaScriptСобытие mouseover в JavaScriptСобытие mouseout в JavaScriptСобытие load в JavaScriptСобытие keyup в JavaScriptСобытие keydown в JavaScriptСобытие invalid в JavaScriptСобытие input в JavaScriptСобытийная модель Event в JavaScriptОбъект события Event в JavaScriptСобытие DOMContentLoaded в JavaScriptСобытие dblclick в JavaScriptСобытие click в JavaScriptСобытие change в JavaScriptСобытие beforeunload в JavaScript
Как работает метод some() - JavaScriptКак работает метод reverse() - JavaScriptКак работает метод reduce() - JavaScriptКак работает метод map() - JavaScriptКак работает метод isArray() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод from() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод forEach() - JavaScriptКак работает метод flatMap() - JavaScriptКак работает метод flat() - JavaScriptКак работает метод findIndex() - JavaScriptКак работает метод find() - JavaScriptКак работает метод filter() - JavaScriptКак работает метод every() - JavaScriptМассивы в JavaScript
Открыть базу знаний