我有以下哈希数组:
a = [{:a => 1, :b => "x"}, {:a => 2, :b => "y"}]
我需要把它变成:
z={"x" => 1, "y" => 2}
或:
z={1 => "x", 2 => "y"}
我能以干净,实用的方式做到这一点吗?
答案 0 :(得分:2)
这样的事情:
Hash[a.map(&:values)] # => {1=>"x", 2=>"y"}
如果你想要另一种方式:
Hash[a.map(&:values).map(&:reverse)] # => {"x"=>1, "y"=>2}
纳入@squiguy的建议:
Hash[a.map(&:values)].invert