2015-07-03 89 views
-1

樹結構我想從以下數據生成樹型結構:紅寶石產生從平面陣列

[ 
{"first_name" => "Test", "id" => "1", "parent_id" => ""}, 
{"first_name" => "Test1", "id" => "2", "parent_id" => "1"}, 
{"first_name" => "Test2", "id" => "3", "parent_id" => "1"}, 
{"first_name" => "Test3", "id" => "4", "parent_id" => "2"} 
] 

我想創建Ruby腳本來構建以下結構:

[ 
{ 
    "first_name" => "Test", 
    "id" => "1", 
    "children" => [ 
    { 
    "first_name" => "Test1", 
    "id" => "2", 
    "children" => [ 
     { 
     "first_name" => "Test3", 
     "id" => "4" 
     } 
    ] 
    }, 
    { 
     "first_name" => "Test2", 
     "id" => "3" 
    } 
} 
] 

你有在這種情況下的一些提示?

+2

這是功課嗎? – Max

+0

與http://stackoverflow.com/q/18829289/3910390重複 – Penguin

回答

1

給定一個特定的節點,很容易找到該節點的子節點。關鍵是要按正確的順序來做,不要重複任何事情。因此,您可以從根開始,將節點分爲兩組:添加到樹中的節點以及沒有的節點。然後,只需遍歷樹中的節點,添加它們的子節點,並將子節點從不在樹中的節點集移到樹中的節點集。

我可以稍後添加一些Ruby代碼,但現在不清楚您需要什麼。