0

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

我有一个哈希对象如下

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

我想去

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

2 回答 2

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

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

input_hash.values.reduce(:merge)
于 2012-09-08T21:17:08.180 回答
1

使用 Splat 运算符

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

my_hash = {2=>{:name=>"Somename"}, 3=>{:last_name=>"Something"}}
[*my_hash.values]
# => [{:name=>"Somename"}, {:last_name=>"Something"}]
于 2012-09-08T21:22:26.917 回答