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

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile