data structures with idiomatic JavaScript collection interfaces

Usage no npm install needed!

<script type="module">
  import collections from '';



npm version

Build Status


This package contains JavaScript implementations of common data structures with idiomatic iterfaces, including extensions for Array and Object.

You can use these Node Packaged Modules with Node.js, Browserify, Mr, or any compatible CommonJS module loader. Using a module loader or bundler when using Collections in web browsers has the advantage of only incorporating the modules you need. However, you can just embed <script src="collections/collections.min.js"> and all of the collections will be introduced as globals. :warning: require("collections") is not supported.

npm install collections --save

Documentation can be found at which in turn can be updated at


Tests are in the test directory. Use npm test to run the tests in NodeJS or open test/run.html in a browser.

To run the tests in your browser, simply use npm run test:jasmine.

To run the tests using Karma use npm run test:karma and for continious tests run with file changes detection npm run test:karma-dev. Finally to open a remote debug console on karma use npm run test:karma-debug.

Design principles

  • extends core types (e.g extends Array.prototype with additional non-enumerable properties like .set)