ruby - 如何从散列的散列中删除重复值

标签 ruby ruby-on-rails-4 hash

我需要一个唯一的散列,其中 "one" 的值永远不会重复。

例如,

hash= {"1"=>{"one"=>1,"two"=>2},
   "2"=>{"one"=>1,"two"=>3},
   "3"=>{"one"=>2,"two"=>3},
   "4"=>{"one"=>1,"two"=>2}}

那么结果应该是,

hash= {"1"=>{"one"=>1,"two"=>2},
    "3"=>{"one"=>2,"two"=>3}}

最佳答案

(可读)一行:

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

关于ruby - 如何从散列的散列中删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30614979/

相关文章:

ruby-on-rails - Bootstrap-Sass 不适用于 Rails 4

c# - 为什么我们在哈希算法中有一个额外的桶数组?

algorithm - 哈希表运行时复杂度(插入、搜索和删除)

ruby-on-rails - 如何更改 shoulda 匹配器的主题

ruby - Ruby 中的类常量和类实例变量有什么区别?

css - 使用 Capybara 测试 Rails 应用程序时出现 CSS 错误

ruby-on-rails - Rails 4 - 在没有数据库的情况下验证模型

hash - 在 Erlang 中将数据 block 签名为哈希不起作用。基于ec的 key 推导

ruby-on-rails - 如何在 Rails 5.0.0 上修复 bundle 安装 "nio4r error"

ruby - 抓取目录中具有特定扩展名的所有文件,而不管扩展名大小写(不区分大小写的扩展名)Ruby