Ruby哈希键以数组为条件的哈希值

时间:2013-02-07 08:20:54

标签: ruby hash

我想在满足条件时将哈希键值提取到数组。例如,使用散列h我想提取值为“true”的键:

h = { :a => true, :b => false, :c =>true }

我想出了这个:

h.map {|k,v| k if v==true} - [nil]

任何替代方案?

2 个答案:

答案 0 :(得分:11)

h.select { |_, v| v }.keys

将采用相同的方式,但更具可读性。

答案 1 :(得分:0)

您也可以

s = {}
h.each do |k,v|
   s[k] = v if v==true
end