metho-set

1.0.0 • Public • Published

Metho Set

Set prototype extensions using the Metho library:

Usage

const a = new Set([1, 2, 3])
const b = new Set([3, 4, 5])

// union - everything from both sets
a[union(b)] // Set [ 1, 2, 3, 4, 5 ]

// intersect - everything that exists both in set a and in set b
a[intersect(b)] // Set [ 3 ]

// difference - everything that exists in set a, but not in set b
a[difference(b)] // Set [ 1, 2 ]

// map - transform each item and take unique values
a[map(i => i * 2)] // Set [ 2, 4, 6 ]

// filter - return subset that conforms to predicate
a[filter(i => i % 2 !== 0)] // Set [ 1, 3 ]

// some - test if includes a value that conforms to predicate
a[some(i => i < 3)] // true
a[some(i => i > 5)] // false

// every - test if all values conform to predicate
a[every(i => i < 4)] // true
b[every(i => i < 4)] // false

// groupBy - group into subsets in object with key given by the callback
a[groupBy((n) => n % 2 === 0 ? 'even' : 'odd')]
// { even: Set [ 2 ], odd: Set [ 1, 3 ] }

// Callback to `map`, `filter`, `some`, and `every` receives:
// `value`, `key` (= `value`, see Set#forEach), `set`
const hasDouble = (n, _, set) => set.has(n * 2)
a[some(hasDouble)] // true
b[some(hasDouble)] // false

Package Sidebar

Install

npm i metho-set

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

4.7 kB

Total Files

5

Last publish

Collaborators

  • jonrandy