很想知道在ruby中执行此操作的最佳方法。我已经做到了,但我认为我没有做到最好
我有一个哈希对象如下
{2=>{:name=>"Somename"}, 3=>{:last_name=>"Something"}}
我想去
{:name=>"Somename",:last_name=>"Something"}
答案 0 :(得分:5)
input_hash.values.reduce { |h,v| h.merge(v) }
更新:我认为我的答案最短,但我错了, tokland的答案:
input_hash.values.reduce(:merge)
答案 1 :(得分:1)
在这种特殊情况下,您可以使用splat运算符将哈希值提取到哈希数组中。例如:
my_hash = {2=>{:name=>"Somename"}, 3=>{:last_name=>"Something"}}
[*my_hash.values]
# => [{:name=>"Somename"}, {:last_name=>"Something"}]