You can skip recursion and use something like this:
a = {} a[0] = { first: "first" } a[1] = [{ second: "second_1" }, { second: "second_2" }] a.each_pair do |k1, v1| puts "======== key: #{k1}, value: ========" if v1.class == Hash v1.each_pair do |k2, v2| puts "key_2: #{k2}, value: #{v2}" end else v1.each do |h| h.each_pair do |k2, v2| puts "hash #{v1.index(h)} => key_2: #{k2}, value: #{v2}" end end end end
Output:
======== key: 0, value: ======== key_2: first, value: first ======== key: 1, value: ======== hash 0 => key_2: second, value: second_1 hash 1 => key_2: second, value: second_2
Gray kemmey
source share