Skip to content

A set data structure that maintains the order of insertion

License

Notifications You must be signed in to change notification settings

forsakesoul/ordered-set

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ordered Set

by Nicholas C. Zakas

If you find this useful, please consider supporting my work with a donation.

Description

A JavaScript data structure that allows random access and traversal of a set's items. This is implemented as a doubly-linked list behinds the scenes.

Installation

You can install using npm or Yarn:

npm install @humanwhocodes/ordered-set --save

# or

yarn add @humanwhocodes/ordered-set

Usage

Retrieve the OrderedSet constructor and use the methods:

const { OrderedSet } = require("@humanwhocodes/ordered-set");

// create a new instance
const set = new OrderedSet();

// add in data
set.add(1);
set.add(2);
set.add(3);

// get the value before 2
const prev = set.previous(2);

// get the value after 1
const next = set.next(1);

// check if a value exists in the set
const exists = set.has(2);

// how many values are in the set?
const size = set.size;

// get the first value in the set
const first = set.first();

// get the last value in the set
const last = set.last();

// find the next value matching this function
const value1 = set.findNext(value => value > 1, 1);

// find the previous value matching this function
const value2 = set.findNext(value => value > 1, 3);

// remove a value
set.delete(1);

// get all values
let values1 = [...set.values()];
let values2 = [...set];

// get all values in reverse order
let values3 = [...set.reverse()];

License

Apache 2.0

About

A set data structure that maintains the order of insertion

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%