extra-set

A pack of functions for working with Sets.
📦 Node.js, 🌐 Web, 📜 Files, 📰 Docs, 📘 Wiki.

A Set is a collection of unique values. This package includes common set functions related to querying about sets, generating them, comparing one with another, finding their size, adding and removing elements, obtaining its properties, getting a part of it, getting a subset elements in it, finding an element in it, performing functional operations, manipulating it in various ways, combining together sets or its elements, of performing set operations upon it.

All functions except from*() take set as 1st parameter. Methods like concat() are pure and do not modify the set itself, while methods like concat$() do modify (update) the set itself.

This package is available in Node.js and Web formats. The web format is exposed as extra_set standalone variable and can be loaded from jsDelivr CDN.

Stability: Experimental.


const set = require('extra-set');
// import * as set from "extra-set";
// import * as set from "https://unpkg.com/extra-set/index.mjs"; (Deno)

var x = new Set([1, 2, 3, 4, 5]);
var y = new Set([2, 4]);
set.difference(x, y);
// → Set(3) { 1, 3, 5 }

var x = new Set([1, 2, 3]);
var y = new Set([3, 4]);
set.isDisjoint(x, y);
// → false

var x = new Set([1, 2, 3, 4]);
var y = new Set([3, 4, 5, 6]);
set.symmetricDifference(x, y);
// → Set(4) { 1, 2, 5, 6 }

var x = new Set([1, 2, 3]);
[...set.subsets(x)];
// → [
// → Set(0) {},
// → Set(1) { 1 },
// → Set(1) { 2 },
// → Set(2) { 1, 2 },
// → Set(1) { 3 },
// → Set(2) { 1, 3 },
// → Set(2) { 2, 3 },
// → Set(3) { 1, 2, 3 }
// → ]


Index

Property Description
is Check if value is a set.
values List all values.
entries List all value-value pairs.
from Convert an iterable to set.
from$ Convert an iterable to set.
compare Compare two sets.
isEqual Check if two sets are equal.
size Find the size of a set.
isEmpty Check if a set is empty.
add Add a value to set.
add$ Add a value to set.
remove Delete a value from set.
remove$ Delete a value from set.
count Count values which satisfy a test.
countAs Count occurrences of values.
min Find smallest value.
max Find largest value.
range Find smallest and largest entries.
head Get first value from set (default order).
tail Get a set without its first value (default order).
take Keep first n values only (default order).
take$ Keep first n values only (default order).
drop Remove first n values (default order).
drop$ Remove first n values (default order).
subsets List all possible subsets.
randomValue Pick an arbitrary value.
randomEntry Pick an arbitrary entry.
randomSubset Pick an arbitrary subset.
hasSubset Checks if set has a subset.
has Check if set has a value.
find Find first value passing a test (default order).
findAll Find all values passing a test.
forEach Call a function for each value.
some Check if any value satisfies a test.
every Check if all values satisfy a test.
map Transform values of a set.
map$ Transform values of a set.
reduce Reduce values of set to a single value.
filter Keep values which pass a test.
filter$ Keep values which pass a test.
reject Discard values which pass a test.
reject$ Discard values which pass a test.
flat Flatten nested set to given depth.
flatMap Flatten nested set, based on map function.
partition Segregate values by test result.
partitionAs Segregates values by similarity.
chunk Break set into chunks of given size.
concat Append values from sets.
concat$ Append values from sets.
join Join values together into a string.
isDisjoint Check if sets have no value in common.
union Obtain values present in any set.
union$ Obtain values present in any set.
intersection Obtain values present in both sets.
intersection$ Obtain values present in both sets.
difference Obtain values not present in another set.
difference$ Obtain values not present in another set.
symmetricDifference Obtain values not present in both sets.
symmetricDifference$ Obtain values not present in both sets.
cartesianProduct List cartesian product of sets.


ORG DOI Coverage Status Test Coverage Maintainability

Generated using TypeDoc