ハッシュがあり、そのキーと値を抽出しようとしています。ハッシュには、ネストされたハッシュおよび/またはハッシュの配列があります。
このサイトといくつかのサンプルを確認した後、キーと値を取得しました。しかし、ハッシュの配列である場合、抽出が困難です。
例:
{
:key1 => 'value1',
:key2 => 'value2',
:key3 => {
:key4 => [{:key4_1 => 'value4_1', :key4_2 => 'value4_2'}],
:key5 => 'value5'
},
:key6 => {
:key7 => [1,2,3],
:key8 => {
:key9 => 'value9'
}
}
}
これまでのところ、Ruby でハッシュのハッシュをループし、Ruby で深くネストされたレベルのハッシュを反復処理する方法のコードを以下に示します。
def ihash(h)
h.each_pair do |k,v|
if v.is_a?(Hash) || v.is_a?(Array)
puts "key: #{k} recursing..."
ihash(v)
else
# MODIFY HERE! Look for what you want to find in the hash here
puts "key: #{k} value: #{v}"
end
end
end
しかし、それはv.is_hash?(Array)
またはで失敗しますv.is_a?(Array)
。
何か不足していますか?