2014-02-07 137 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; 
}