time-ordered-set

1.0.2 • Public • Published

time-ordered-set

Efficiently maintain a set of nodes ordered by the time they were added to the set

npm install time-ordered-set

build status

Usage

var set = require('time-ordered-set')
var s = set()
 
// add 3 nodes
 
s.add({
  hello: 'world'
})
 
var node = s.add({
  hello: 'welt'
})
 
s.add({
  hello: 'verden'
})
 
// re-add the 2nd one
 
s.add(node)
console.log(s.toArray().map(node => node.hello)) // ['world', 'verden', 'welt']

API

var s = set()

Create a new set

node = s.add(node)

Add a new node to the set. Will add the properties node.next and node.prev to the node. Re-adding the same node will move to the latest node.

node = s.remove(node)

Remove a node. Will set node.next and node.prev to null.

bool = s.has(node)

Check if a node has been added.

var array = s.toArray(maxCount)

Get an ordered array out of all the nodes, ordered from oldest to newest. Set maxCount if you only want to get a subset.

s.oldest

Property containing the oldest node.

s.latest

Property containing the newest node.

s.length

Property containing how many nodes are in the set.

License

MIT

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.2
    2,067
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.2
    2,067
  • 1.0.1
    0
  • 1.0.0
    1

Package Sidebar

Install

npm i time-ordered-set

Weekly Downloads

2,068

Version

1.0.2

License

MIT

Unpacked Size

6.97 kB

Total Files

7

Last publish

Collaborators

  • mafintosh