Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
April 11, 2013 19:05
May 29, 2019 12:58
February 16, 2015 06:52
March 28, 2017 14:02
March 28, 2017 14:02
February 7, 2019 14:29
July 19, 2018 16:53
July 29, 2014 13:14
December 7, 2017 09:04
December 28, 2017 12:38
December 28, 2017 12:40
July 10, 2014 18:08
November 7, 2012 10:19
July 27, 2017 17:36
November 3, 2012 19:37
January 21, 2013 20:39
January 20, 2013 15:55
January 20, 2013 15:55
October 26, 2012 18:24


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. ⚠️ 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)