在ruby中转换哈希对象

use*_*651 0 ruby arrays hash

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

我有一个哈希对象如下

{2=>{:name=>"Somename"}, 3=>{:last_name=>"Something"}}
Run Code Online (Sandbox Code Playgroud)

我想去

{:name=>"Somename",:last_name=>"Something"}
Run Code Online (Sandbox Code Playgroud)

meg*_*gas 5

input_hash.values.reduce { |h,v| h.merge(v) }
Run Code Online (Sandbox Code Playgroud)

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

input_hash.values.reduce(:merge)
Run Code Online (Sandbox Code Playgroud)

  • 也称为`input_hash.values.reduce(:merge)` (4认同)