js-dll
Doubly linked list code bricks for Javascript. Implements the specification in js-list-spec. Parent is js-data-structures.
for let value of list ... ;
Can be managed through jspm, duo, component, bower, ender, jam, spm, and npm.
Install
jspm
jspm install github:aureooms/js-dll# orjspm install npm:aureooms-js-dll
duo
No install step needed for duo!
component
component install aureooms/js-dll
bower
bower install aureooms-js-dll
ender
ender add aureooms-js-dll
jam
jam install aureooms-js-dll
spm
spm install aureooms-js-dll --save
npm
npm install aureooms-js-dll --save
Require
jspm
let dll = ;// or;
duo
let dll = ;
component, ender, spm, npm
let dll = ;
bower
The script tag exposes the global variable dll
.
Alternatively, you can use any tool mentioned here.
jam
;
Use
let List = dllDoublyLinkedList ; let list = ; let iterators = for x of 0 1 2 list ; for let element of list element ; // [ 0 , 1 , 2 ] list ; // removes `1` from the list for let element of list element ; // [ 0 , 2 ] // note that other iterators remain valid iterator0currentvalue = 0 ;iterator2currentvalue = 2 ; iterator0next ; // { value : 2 , done : false }iterator0next ; // { done : true } iterator0 ; // { value : 2 , done : false }iterator0 ; // { value : 0 , done : false }iterator0 ; // { done : true } iterator2 ; // { value : 0 , done : false }iterator2 ; // { done : true } iterator2next ; // { value : 0 , done : false }iterator2next ; // { value : 2 , done : false }iterator2next ; // { done : true } // SUPPORTED METHODS // ConstructorList ; // new ( ) -> List // number of elements in the listlistlength ; // integer // returns iterator at the beginning of the listListprototypeSymboliterator ; // ( ) -> iterator // inserts value after iterator, returns new iteratorListprototypeinsertAfter ; // ( iterator , value ) -> iterator // inserts value before iterator, returns new iteratorListprototypeinsertBefore ; // ( iterator , value ) -> iterator // inserts value at the beginning of the list, returns new iteratorListprototypeunshift ; // ( value ) -> iterator // inserts value at the end of the list, returns new iteratorListprototypepush ; // ( value ) -> iterator // erases iterator, returns next iteratorListprototypeerase ; // ( iterator ) -> iterator {next} // erases iterator, returns previous iteratorListprototypererase ; // ( iterator ) -> iterator {prev} // erases iterators in [first, last[, returns a copy of lastListprototypeeraserange ; // ( first , last ) -> iterator // erases iterator at the beginning of the list, returns associated valueListprototypeshift ; // ( ) -> value // erases iterator at the end of the list, returns associated valueListprototypepop ; // ( ) -> value // erases the contents of the listListprototypeclear ; // ( ) -> self // returns iterator at the beginning of the listListprototypebegin ; // ( ) -> iterator // returns iterator at the end of the listListprototypeend ; // ( ) -> iterator // returns reverse iterator at the end of the listListprototyperbegin ; // ( ) -> iterator // returns reverse iterator at the beginning of the listListprototyperend ; // ( ) -> iterator // returns a copy of selfIteratorprototypecopy ; // ( ) -> iterator // returns a copy of selfReverseIteratorprototypecopy ; // ( ) -> iterator // moves iterator one step forward, standard iterator protocol return objectIteratorprototypenext ; // ( ) -> { done , value } // moves iterator one step backward, standard iterator protocol return objectIteratorprototypeprev ; // ( ) -> { done , value } // moves iterator one step forward, standard iterator protocol return objectReverseIteratorprototypenext ; // ( ) -> { done , value } // moves iterator one step backward, standard iterator protocol return objectReverseIteratorprototypeprev ; // ( ) -> { done , value }