【发布时间】:2021-10-16 22:10:42
【问题描述】:
我正在努力完成一项任务,该任务包括将数组转换为带有子元素的哈希数组。
基本上,我需要从一组标题中创建一个分层的 html 目录。
这是初始数组:
- !ruby/object:Prismic::Fragments::StructuredText::Block::Heading
text: Quelles espèces de dauphins peut-on voir en Martinique ?
level: 2
- !ruby/object:Prismic::Fragments::StructuredText::Block::Heading
text: Dauphin de Fraser
level: 3
- !ruby/object:Prismic::Fragments::StructuredText::Block::Heading
text: Dauphin tacheté pantropical
level: 3
- !ruby/object:Prismic::Fragments::StructuredText::Block::Heading
text: Dauphin d’Électre
level: 3
- !ruby/object:Prismic::Fragments::StructuredText::Block::Heading
text: Le grand dauphin
level: 3
- !ruby/object:Prismic::Fragments::StructuredText::Block::Heading
text: Globicéphale tropical
level: 3
- !ruby/object:Prismic::Fragments::StructuredText::Block::Heading
text: Les meilleurs spots pour voir les dauphins en Martinique
level: 2
- !ruby/object:Prismic::Fragments::StructuredText::Block::Heading
text: Conditions idéales pour l’observation des dauphins en Martinique
level: 2
- !ruby/object:Prismic::Fragments::StructuredText::Block::Heading
text: Comment se déroule cette balade en mer ?
level: 2
基本上,我需要前一个数组看起来像这个哈希数组:
[
{
"text" => "Quelles espèces de dauphins peut-on voir en Martinique ?",
"level" => 2,
"children" => [
{
"text" => "Dauphin de Fraser",
"level" => 3,
"children" => []
},
{
"text" => "Dauphin tacheté pantropical",
"level" => 3,
"children" => []
},
{
"text" => "Dauphin d’Électre",
"level" => 3,
"children" => []
},
{
"text" => "Le grand dauphin",
"level" => 3,
"children" => []
},
{
"text" => "Globicéphale tropical",
"level" => 3,
"children" => []
}
]
},
{
"text" => "Les meilleurs spots pour voir les dauphins en Martinique",
"level" => 2,
"children" => []
},
{
"text" => "Conditions idéales pour l’observation des dauphins en Martinique",
"level" => 2,
"children" => []
},
{
"text" => "Comment se déroule cette balade en mer ?",
"level" => 2,
"children" => []
}
]
因此,如果一个项目的level 值大于前一个项目,则该项目需要包含在前一个项目中。允许它创建一个层次结构的哈希数组。
对此有什么帮助吗?提前致谢!
【问题讨论】:
标签: arrays ruby-on-rails ruby hash