JSPM

set-tools

0.0.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q20910F
  • License MIT

Function extensions for JavaScript's built-in Set type

Package Exports

  • set-tools

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (set-tools) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

set-tools

What is it?

set-tools is a prototype extension module for beefing up JavaScript's Set type to include all of your favorite set operations, including difference, union, intersection, issubset, issuperset, and toArray.

What else?

This module is a bit naughty. Normally you are not supposed to extend global JavaScript prototypes. This is because it affects any and all other modules you have loaded. Having said that, these operations are useful and will hopefully be introduced one day as native methods on Set. Assuming no other module is requiring Set to have different implementations of these methods or for some reason requiring them not to be there, then this module won't harm anything.

Installation

npm install set-tools --save

Usage

require('set-tools'); // requiring it supercharges Set prototype automatically.

var s, cmp, results;

/**
 * intersection
 */
s = new Set([1, 3, 5, 7, 9]);
cmp = new Set([2, 3, 8, 9]);
results = s.intersection(cmp); // Set {3, 9}




/**
 * union
 */
s = new Set([1, 3, 5, 7, 9]);
cmp = new Set([2, 3, 8, 9]);
results = s.union(cmp); // Set {2, 3, 8, 9, 1, 5, 7}




/**
 * difference
 */
s = new Set([1, 3, 5, 7, 9]);
cmp = new Set([2, 3, 8, 9]);
results = s.difference(cmp); // Set {1, 5, 7}




/**
 * issubset
 */
s = new Set([1, 3, 5, 7, 9]);
cmp = new Set([3, 5]);
results = s.issuperset(cmp); // true

s = new Set([1, 3, 5, 7, 9]);
cmp = new Set([3, 8]);
results = s.issuperset(cmp); // false




/**
 * issuperset
 */
s = new Set([11, 15, 18, 20]);
cmp = new Set([11, 15, 18, 20, 25, 89, 100]);
results = s.issubset(cmp); // true

s = new Set([11, 15, 18, 57, 62]);
cmp = new Set([11, 15, 18, 20, 25, 89, 100]);
results = s.issubset(cmp); // false

Contributing

Pull requests are much appreciated and accepted.

License

Released under the MIT License