【发布时间】:2013-10-22 22:32:45
【问题描述】:
输入哈希可以包含任何数组和哈希(AoA、AoH、HoH 和 HoA)组合的嵌套。将散列元素展平以具有正确的键和分隔符 _> 是没有问题的。
但是,当数组出现在图片中时,我遇到了麻烦,我需要抓住每个元素并将其粘贴到正确的键上,同时继续构建输出。最终输出应该是一维哈希数组,唯一的区别是每个数组元素。
例如:
如果输入哈希是:
{:x => 333, :y => 13, :z => [1,2,{:zz => [40,50]},[10,20]], :a => {:o => "1", :p => "2"}}
最终结果应该是:
`[{:x => 333, :y => 13, :z => 1, :z_>zz => 40, :a_>o => 1, a_>p => 2},
{:x => 333, :y => 13, :z => 1, :z_>zz => 50, :a_>o => 1, a_>p => 2},
{:x => 333, :y => 13, :z => 2, :z_>zz => 40, :a_>o => 1, a_>p => 2},
{:x => 333, :y => 13, :z => 2, :z_>zz => 50, :a_>o => 1, a_>p => 2},
{:x => 333, :y => 13, :z => 10, :z_>zz => 40, :a_>o => 1, a_>p => 2},
{:x => 333, :y => 13, :z => 10, :z_>zz => 50, :a_>o => 1, a_>p => 2},
{:x => 333, :y => 13, :z => 20, :z_>zz => 40, :a_>o => 1, a_>p => 2},
{:x => 333, :y => 13, :z => 20, :z_>zz => 50, :a_>o => 1, a_>p => 2}]`
【问题讨论】:
-
我已经使用递归散列展平了输入散列。如果该值是一个数组,它会循环通过将 {theKey => theKeysValue} 推送到一个数组中以供以后访问。