2
私はこの質問を解決する手掛かりがありません。 data
というarray
の中にnested
hash
があります。ここにその構造があります。ネストされたハッシュでグループ化する方法を教えてください。
data =
[
{
:id => 1,
:name => "S1",
:children => [
{
:id => 10,
:name => "S10",
:children => [
{
:id => 20,
:name => "S20"
}
]
}
]
},
{
:id => 1,
:name => "S1",
:children => [
{
:id => 10,
:name => "S10",
:children => [
{
:id => 21,
:name => "S21"
}
]
}
]
},
{
:id => 1,
:name => "S1",
:children => [
{
:id => 11,
:name => "S11",
:children => [
{
:id => 22,
:name => "S22"
}
]
}
]
}
]
あなたが見ることができるように、そこに第一層または第2層に同じid
を持つ要素の束があるので、私はグループにそれらを必要とします。
が、私は結果がしかし
data.group_by{|s| s[:id]}
よう
result=
[
{
:id => 1,
:name => "S1",
:children => [
{
:id => 10,
:name => "S10",
:children => [
{
:id => 20,
:name => "S20"
},
{
:id => 21,
:name => "S21"
}
]
},
{
:id => 11,
:name => "S11",
:children => [
{
:id => 22,
:name => "S22"
}
]
}
]
}
]
私が試した気にいらないことを願って、それが唯一のグループ第一層は、私にはわからないだろうかのグループにネスト構造に。
を、再帰的には、私のために困難です。あなたに大きな助けをありがとう! –