需要帮助递归javascript函数

时间:2014-02-07 23:20:13

标签: json dynamic recursion treeview

我想转json字符串

       treeNodes =[{managerid:root,Employeeid:01}, 
              {managerid:01,Employeeid:11}, 
              {managerid:01,Employeeid:22}, 
              {managerid:22,Employeeid:33}, 
              {managerid:22,Employeeid:44}]; 

使用javascript进入此json字符串。

       json={
        id:root,
        children[{
                id:01,
                children[
                        {id:11},
                        {id:22}
                        ]},
                 {
                 id:22,                  
                children[
                       {id:33},
                       {id:44}
                        ]
                        }

有人可以帮助使用java脚本功能吗?

1 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西(我假设root是一个声明的变量):

var rootNode = {Employeeid:root};
var json = makeJsonNode(treeNodes, rootNode);
// Do something with "json"
// ...

function makeJsonNode(treeNodes, node){
    var jsonNode = { id : node.Employeeid };
    var children = [];
    for(var i=0; i<treeNodes.length; i++){
        if(treeNodes[i].managerid === node.Employeeid){
            children.push(makeJsonNode(treeNodes, treeNodes[i]));
        }
    }
    if (children.length > 0) jsonNode.children = children;
    return jsonNode;
}