Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
次のハッシュの配列があります。
a = [{:a => 1, :b => "x"}, {:a => 2, :b => "y"}]
私はそれを次のように変える必要があります:
z={"x" => 1, "y" => 2}
また:
z={1 => "x", 2 => "y"}
クリーンで機能的な方法でこれを行うことはできますか?
このようなもの:
Hash[a.map(&:values)] # => {1=>"x", 2=>"y"}
他の方法が必要な場合:
Hash[a.map(&:values).map(&:reverse)] # => {"x"=>1, "y"=>2}
@squiguy からの提案を取り入れます。
Hash[a.map(&:values)].invert