2014-02-07 117 views
0

我希望把JSON字符串需要帮助的递归javascript函数

 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脚本功能?

+0

你期望我们怎么做?你试过什么了? – Mithrandir

+0

所以“根”是“01”的经理。 “01”是“11”和“22”的经理。 “22”是“33”和“44”的经理。 –

+0

是的,我错过了22 – user3281949

回答

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; 
}