Package Exports
- cp-data
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 (cp-data) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
cp-data
cp-data is a JavaScript library for some common data structures. Currently this includes a fast Set implementation and a PriorityQueue.
Getting cp-data
NPM Install
Before installing this library you need to install the npm package manager.
To get cp-data from npm, use:
$ npm install cp-data
Browser Scripts
You can get the latest browser-ready scripts:
Build From Source
Before building this library you need to install the npm package manager.
Check out this project and run this command from the root of the project:
$ make
This will generate cp-data.js
and cp-data.min.js
in the out/dist
directory
of the project.
Set Example
var Set = require('cp-data').Set;
var s1 = new Set();
s1.has(1);
// => false
s1.add(1);
// => true
s1.size();
// => 1
s1.has(1);
// => true
// Addind a key that is already in the set does not change the set. The
// function returns `false` to indicate nothing changed.
s1.add(1);
// => false
s1.size();
// => 1
s1.add(2);
s1.size();
// => 2
// We can construct a set from an array
var s2 = new Set([2, 3, 4]);
s2.keys();
// => [2, 3, 4]
// Intersection:
Set.intersect([s1, s2]).keys();
// => [2]
// Union:
Set.union([s1, s2]).keys();
// => [1, 2, 3, 4]
// We can also do set intersection / union with arrays:
Set.intersect([[1, 2, 3], [2, 3, 4]]).keys();
// => [2, 3]
// We can do set intersection / union with more that 2 sets:
Set.union([s1, s2, ['a', 'b', 'c']]).keys();
// => [1, 2, 3, 4, 'a', 'b', 'c']
// Lastly, sets preserve the type of the key supplied. Compare the following 2
// results:
new Set([1]).keys();
// => [1]
new Set(['1']).keys();
// => ['1']
License
cp-data is licensed under the terms of the MIT License. See the LICENSE file for details.