在Ruby中将哈希数组转换为ONE哈希

我有一个带有数组的哈希数组,看起来像这样:

result = [ {"id_t"=>["1"], "transcript_t"=>["I am a transcript ONE"]}, {"id_t"=>["2"], "transcript_t"=>["I am a transcript TWO"]}, {"id_t"=>["3"], "transcript_t"=>["I am a transcript THREE"]} ] 

如果可能的话,我想做的就是将它转换成一个哈希,其中每个key => value对取自每个哈希的值。 我不认为我解释得那么好,所以这就是我的意思:

 end_result = { "1"=>"I am a transcript ONE", "2"=>"I am a transcript TWO", "3"=>"I am a transcript THREE" } 

我一直在寻找Stack Overflow和谷歌的各种方法,但我在这个过程中让自己感到困惑。 关于如何实现这一点的任何想法?

我认为解决方案的关键是Hash[] ,它将根据键/值数组创建一个Hash,即

 Hash[[["key1", "value1"], ["key2", "value2"]]] #=> {"key1" => "value1", "key2" => "value2"} 

只需添加一组map ,您就有了解决方案!

 result = [ {"id_t"=>["1"], "transcript_t"=>["I am a transcript ONE"]}, {"id_t"=>["2"], "transcript_t"=>["I am a transcript TWO"]}, {"id_t"=>["3"], "transcript_t"=>["I am a transcript THREE"]} ] Hash[result.map(&:values).map(&:flatten)] 

试试这个

 result.inject({}){|acc, hash| acc[hash.values[0][0]] = hash.values[1][0]; acc } => { "1"=>"I am a transcript ONE", "2"=>"I am a transcript TWO", "3"=>"I am a transcript THREE" }