如何从散列哈希中删除重复值

jis*_*ssy 1 ruby hash ruby-on-rails-4

我需要一个唯一的哈希值,其值"one"永远不会重复.

例如,

hash= {"1"=>{"one"=>1,"two"=>2},
   "2"=>{"one"=>1,"two"=>3},
   "3"=>{"one"=>2,"two"=>3},
   "4"=>{"one"=>1,"two"=>2}}
Run Code Online (Sandbox Code Playgroud)

然后结果应该是,

hash= {"1"=>{"one"=>1,"two"=>2},
    "3"=>{"one"=>2,"two"=>3}}
Run Code Online (Sandbox Code Playgroud)

Dav*_*ric 5

(可读)单行:

hash.to_a.uniq {|(_,v)| v['one']}.to_h
# {"1"=>{"one"=>1, "two"=>2}, "3"=>{"one"=>2, "two"=>3}}
Run Code Online (Sandbox Code Playgroud)