我想在ruby中将哈希数组转换为具有特定格式的单个哈希

Vin*_*nay -2 ruby ruby-hash

我有一个hashhash1

hash1 = [{key: 'key1', value: 'value1'}, {key: 'key2', value: 'value2'}, {key: 'key3', value: 'value3'}]
Run Code Online (Sandbox Code Playgroud)

并希望转换为以下格式

{'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3'}
Run Code Online (Sandbox Code Playgroud)

Ste*_*fan 5

如果嵌套的哈希值hash1始终具有该顺序中的一个:key和一个:value键,则可以values通过Array#to_h以下方式将它们转换为哈希:

hash1.map(&:values).to_h
#=> {"key1"=>"value1", "key2"=>"value2", "key3"=>"value3"}
Run Code Online (Sandbox Code Playgroud)

但我宁愿更明确一点:

hash1.map { |h| h.values_at(:key, :value) }.to_h
#=> {"key1"=>"value1", "key2"=>"value2", "key3"=>"value3"}
Run Code Online (Sandbox Code Playgroud)