我想将嵌套的哈希表压平为一个数组。例如:
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