Ruby从平面数组生成树结构

Ruby从平面数组生成树结构,ruby,tree,Ruby,Tree,我想从以下数据生成树结构: [ {"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",

我想从以下数据生成树结构:

[
{"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"
    }
}
] 

在这种情况下,您有什么建议吗?

给定一个特定节点,很容易找到该节点的子节点。关键是要按正确的顺序做,不要重复任何事情。因此,可以从根开始,将节点分为两组:已添加到树中的节点和未添加到树中的节点。然后只需遍历树中的节点,添加它们的子节点,并将子节点从树中的非节点集移动到树中的节点集

稍后我可以添加一些Ruby代码,但现在我不清楚您需要它做什么。

重复使用