我有一个数组
["bob:12 elm st", "sally:100 digital ave", "tom:2324 elmhurst st"]
我需要转换为
{"bob" => "12 elm st", "sally" => "100 digital ave", "tom" => "2324 elmhurst st"}.
我知道我能做到
array.each do |e|
k = e.split(":").first
v = e.split(":").last
hash[k] = v
end
有更优雅的方法吗?
答案 0 :(得分:8)
Hash[]
从数组构造一个哈希。
Hash[array.map {|el| el.split ':'}]
答案 1 :(得分:6)
我相信ruby 2.1有一个.to_h方法。
THEREFOR,
array.map { |i| i.split ':' }.to_h
会奏效。