hash.
map { |a| [a.first].product(a[1..-1]) }.
reduce(&:zip).
map { |a| a.flatten.each_slice(2).each_with_object({}) { |(k, v), h| h[k] = v } }
#â [{"DataSetId"=>"DataSet-1", "Did"=>"DataSet-1", "Company Name"=>"Company1"},
# {"DataSetId"=>"DataSet-1", "Did"=>"DataSet-2", "Company Name"=>"Company2"}]
我很确定最后一次转换可能会以更优雅的方式完成,但我不知道如何完成。
UPD
hash.
map { |a| [a.first].product(a[1..-1]) }.
reduce(&:zip).
map { |a| Hash[*a.flatten] }