unordered-set

2.0.1 • Public • Published

unordered-set

A couple of functions that make it easy to maintain an unordered set as an array in an efficient way

npm install unordered-set

build status

Usage

var set = require('unordered-set')
var list = []
 
var a = {hello: 'world'}
var b = {hej: 'verden'}
 
set.add(list, a)
set.add(list, b)
 
console.log(list) // prints a and b
 
set.remove(list, a)
 
console.log(list) // prints b

Items are removed and added using the same technique as in unordered-array-remove making the removal/additions run in O(1).

API

set.add(list, item)

Add an item. Notes that this sets the property ._index to a number. If you control the items you insert and this is performance critical it might be benefitial to set item._index = 0 in the item constructor as v8 tends to like that.

set.remove(list, item)

Remove an item from the set. Might change the order of the list as well.

bool = set.has(list, item)

Returns true if the item is in the list and false otherwise

set.swap(list, a, b)

Swap the positions of two elements in the set

License

MIT

/unordered-set/

    Package Sidebar

    Install

    npm i unordered-set

    Weekly Downloads

    4,639

    Version

    2.0.1

    License

    MIT

    Unpacked Size

    5.73 kB

    Total Files

    6

    Last publish

    Collaborators

    • mafintosh