在ruby中转换哈希对象

时间:2012-09-08 21:03:36

标签: ruby arrays hash

很想知道在ruby中执行此操作的最佳方法。我已经做到了,但我认为我没有做到最好

我有一个哈希对象如下

{2=>{:name=>"Somename"}, 3=>{:last_name=>"Something"}}

我想去

{:name=>"Somename",:last_name=>"Something"}

2 个答案:

答案 0 :(得分:5)

input_hash.values.reduce { |h,v| h.merge(v) }

更新:我认为我的答案最短,但我错了, tokland的答案

input_hash.values.reduce(:merge)

答案 1 :(得分:1)

使用Splat Operator

在这种特殊情况下,您可以使用splat运算符将哈希值提取到哈希数组中。例如:

my_hash = {2=>{:name=>"Somename"}, 3=>{:last_name=>"Something"}}
[*my_hash.values]
# => [{:name=>"Somename"}, {:last_name=>"Something"}]