Fast tree with live iterator
Fast tree with live iterator. The tree can be modified while iterating over the nodes.
npm install live-tree
To use this module in a browser, download the npm package and then use Browserify to create a standalone version.
var Node = require'live-tree'Node;var n = 'root';nset'a' 2;nset'a.b' 3;nset'a.c' 7;var c i = niterator;while c = inext !== undefinedconsole.logcvalue;
Node(name): Returns a new Node with the given name. The name must be of type string and not empty.
name: The name of the node
value: The value of the node
children: The list of children (see live-list)
set(name, value): Sets the value of the named node. If the node does not exist, it is created and added to the children by calling
_add(node). The value is changed by calling
get(name): Returns the value of the named node. If the node does not exist, undefined is returned.
remove(name): Removes the named node. If it has children, the value is deleted. Parent nodes in the path with no value and no remaining children will be removed as well.
removeAll(): Removes all child nodes
node(name): Return the named node or undefined if the node does not exist
_add(node): Called by
setto add a node to the children. The default implementation does
_value(value): Called by
setto change the value. The default implementation does
this.value = value;.
toObject(): Returns a plain object representation of the node and it's children
iterator(): Returns a new
The iterator is derived from min-iterator.
Iterator(node): Returns a new Iterator using the given root node
next(): Returns the next node in the tree. If there are no items left,