Turning a Hash of Arrays into an Array of Hashes in Ruby

后端 未结 7 1798
走了就别回头了
走了就别回头了 2020-12-30 07:19

We have the following datastructures:

{:a => [\"val1\", \"val2\"], :b => [\"valb1\", \"valb2\"], ...}

And I want to turn that into

7条回答
  •  没有蜡笔的小新
    2020-12-30 08:02

    This will work assuming all the arrays in the original hash are the same size:

    hash_array = hash.first[1].map { {} }
    hash.each do |key,arr|
      hash_array.zip(arr).each {|inner_hash, val| inner_hash[key] = val}
    end
    

提交回复
热议问题