В версии ES6 Javascript вы встроили тип для set ( проверьте совместимость с вашим браузером ).
var numbers = new Set([1, 2, 4]); // Set {1, 2, 4}
К добавить элемент к набору, который вы просто используете .add()
, который работает в O(1)
и либо добавляет элемент для установки (если он не существует), либо ничего не делает, если он уже существует там. Вы можете добавить туда элемент любого типа (массивы, строки, числа)
numbers.add(4); // Set {1, 2, 4}
numbers.add(6); // Set {1, 2, 4, 6}
Чтобы проверить количество элементов в наборе, вы можете просто использовать .size
. Также работает в O(1)
numbers.size; // 4
Для удалить элемент из набора использовать .delete()
. Возвращает true, если значение было (и было удалено), и false, если значение не существовало. Также работает в O(1)
.
numbers.delete(2); // true
numbers.delete(2); // false
To чтобы проверить, существует ли элемент в наборе, используйте .has()
, который возвращает true, если элемент находится в наборе, и false в противном случае. Также работает в O(1)
.
numbers.has(3); // false
numbers.has(1); // true
В дополнение к желаемым методам, есть несколько дополнительных:
numbers.clear();
просто удалит все элементы из набора
numbers.forEach(callback);
итерация значений набора в порядке вставки
numbers.entries();
создать итератор всех значений
numbers.keys();
возвращает ключи набора, который совпадает с numbers.values()
Существует также Weakset, который позволяет добавлять только значения типа объекта.