Tree Node
Simple tree data structure in JS, designed specifically to organize related data in such a way that it can be consumed by tree diagram visualizations, and so that "leaf" nodes (endpoints) can be quickly identified.
Installation
npm install treenode --save
Usage
// Import the class var TreeNode = TreeNode; // Create a tree by adding a single node, with a data object payload. // This will be the root node. tree is a TreeNode object: // {data: {id: 0, name: 'root'}, parent: null, children: []} var tree = id: 0 name: 'root'; // Add children to the root. This returns the newly created child's // TreeNode object. tree; // Add child nodes to child nodes var child = tree; child; // Get a count of the node's immediate children tree // 2 child // 1 // Obtain the tree's leaves (end nodes), from the point of the called node. // Returns an array of TreeNode objects for node 1 and node 3. Node 2 is not // returned since it is not a leaf. var leaves = tree; // Find data in a tree var node = tree; var match = tree; // match === node // Find the tree root, from any node var root = node; // Execute a function on each node in the tree node;
Tests
npm test
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.
Release History
- 0.2.3 Make forEach() properly recursive
- 0.2.2 Don't assume existence of children array. Added numChildren() helper
- 0.2.1 Remove sourcemaps from non-minified prod file
- 0.2.0 Add forEach() to execute a function on each node in a tree
- 0.1.4 Better module export syntax
- 0.1.3 Updated packaging for Bower
- 0.1.2 Updated packaging
- 0.1.1 Updated packaging
- 0.1.0 Initial release