好的,所以我有这个哈希
h
=> {"67676.mpa"=>{:link=>"pool/sdafdsaff", :size=>4556}}
> h.each do |key, value|
> puts key
> puts value
> end
67676.mpa
linkpool/sdafdsaffsize4556
Run Code Online (Sandbox Code Playgroud)
我如何访问循环中值哈希值中的单独值
所以我有一个哈希,对于每个哈希级别,我想存储它的键和值.问题是,值可以是另一个哈希数组.此外,该哈希可以包含键值对,其中值又是另一个哈希数组等等.另外,我不知道每个哈希的嵌套程度有多深.举个例子:
{
:key1 => 'value1',
:key2 => 'value2',
:key3 => {
:key4 => 'value4',
:key5 => 'value5'
},
:key6 => {
:key7 => 'value7',
:key8 => {
:key9 => 'value9'
}
}
}
Run Code Online (Sandbox Code Playgroud)
..等等.我想要做的是保存每个键,值对和其父级的ID.我认为这可能是递归完成的,我只是不确定如何因为我不熟悉递归函数.我知道如何正常迭代数据:
myHash.each {|key, value|
...Do something with the key and value ...
}
Run Code Online (Sandbox Code Playgroud)
所以我猜测递归调用将是这样的:
def save_pair (myHash)
myHash.each {|key, value|
if(value.class != Hash) ? Pair.create(key, value) : save_pair(value)
}
end
Run Code Online (Sandbox Code Playgroud)
这是未经测试的,我仍然不确定如何合并保存父ID.