今天有个同事,问了一个关于ztree的问题, 怎么找到树的最后一个节点。闲着有空,自己按着思路写了一个存放树节点信息的程序,把对应层的节点信息放到对应的数组下标中。
var tree = { "name": "Root", "childrens" : [ { "name" : "node1", "childrens": [{ "name" : "node2", "childrens" :[{ "name" : "node3" }] },{ "name": "node4" }] },{ "name" : "node5" } ] } ; var indexData = []; //存储树节点信息, 对应的层放对应的节点信息 //过滤childrens节点的信息 var filter = function(source){ var destince = new Object(); for(var key in source){ if(key == "childrens") continue; destince[key] = source[key]; } return destince; } var writeTreeData = function(node){ for(var i = 0; i<node.childrens.length; i++){ var childNode = node["childrens"][i]; childNode.index = node.index + 1; if(indexData[childNode.index] == undefined){ indexData[childNode.index] = new Array(); } indexData[childNode.index].push(filter(childNode)); if(childNode.childrens && childNode.childrens.length > 0){ getTreeData(childNode); } } } tree.index = 0; //存放第1个节点的信息 indexData[tree.index] = [filter(tree)]; writeTreeData(tree); console.info(indexData);这样,找对应层数的树节点信息就更加方便了。^-^~