Simple tree data structure in
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.
Installationnpm install treenode --save
Usage// Import the class var TreeNode = require('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 = new TreeNode({id: 0, name: 'root'}); // Add children to the root. This returns the newly created child's // TreeNode object. tree.addChild({id: 1, name: 'Node 1'}); // Add child nodes to child nodes var child = tree.addChild({id: 2, name: 'Node 2'}); child.addChild({id: 3, name: 'Node 3' }); // Get a count of the node's immediate children tree.numChildren() // 2 child.numChildren() // 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.leaves(); // Obtain the node's children. Returns an array of nodes that are direct // children. var childrenArray = node.children(); // Return the node's parent. Calling on root will return undefined. var parentNode = node.parent; // Find data in a tree var node = tree.addChild(someObject); var match = tree.find(someObject); // match === node // Use the node's "data" property to get a handle to the data payload of a node: var displayName = node.data.name; // Find the tree root, from any node var root = node.root(); // Execute a function on each node in the tree node.forEach(function(element) { element.data.status='processed'; }); Tests
npm test
ContributingIn 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版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。