ネストされたハッシュを配列にフラット化したいと思います。例えば:
a = {'1'=>{'2'=>{'5'=>{},'6'=>{'8'=>{}}}},'3'=>{},'4'=>{'7'=>{}}}
flatten_nested_hash(a) の結果は次のようになります。
["1", "2", "5", "6", "8", "3", "4", "7"]
最後に、再帰関数を書きましたが、もっと簡単で非再帰的な方法が必要だと感じています。
私の関数は次のようになります。
def flatten_nested_hash(categories)
categories.map do |k,v|
if v == {}
k
else
[k,flatten_nested_hash(v)]
end
end.flatten
end