Ruby - 哈希 - 组合

标签 ruby hash

例如,我有一个包含 5 个元素的哈希:

my_hash = {a: 'qwe', b: 'zcx', c: 'dss', d: 'ccc', e: 'www' }

我的目标是每次循环哈希时都返回,但没有一个元素,例如:

my_hash = {a: 'qwe', b: 'zcx', c: 'dss', d: 'ccc' }

然后

my_hash = {a: 'qwe', b: 'zcx', c: 'dss', e: 'www' }

等等

使用数组我会使用组合方法,但是当我使用哈希时? 我想尽可能轻松地做到这一点

最佳答案

您可以将其转换为数组,稍后再将其转换回哈希:

my_hash.to_a.combination(4).to_a.sample.to_h
# => {:a=>"qwe", :b=>"zcx", :c=>"dss", :e=>"www"}
my_hash.to_a.combination(4).to_a.sample.to_h
# => {:a=>"qwe", :c=>"dss", :d=>"ccc", :e=>"www"}

关于Ruby - 哈希 - 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31718330/

相关文章:

ruby - 我该如何解决这个关于 end 关键字的 Ruby 语法错误?

ruby-on-rails - Ruby on Rails,如何使 Controller 在不重定向的情况下呈现不同的页面?

ruby - 为什么 Heroku worker 有 100% dyno 负载?

ruby-on-rails - 调整缩放 Gmaps4Rails

javascript - 如何限制哈希长度

ruby - SSH连接一个接一个,第二个失败

c# - 我有错误的哈希值? C#密码学

perl - 有人可以解释这里的实际错误是什么以及如何解决吗?

ruby - 从 Ruby 中的键数组的散列中获取值的方法

c++ - 逐行散列文件时错误的 md5 散列值