我想在满足条件时将哈希键值提取到数组。例如,使用散列h我想提取值为“true”的键:
h = { :a => true, :b => false, :c =>true }
我想出了这个:
h.map {|k,v| k if v==true} - [nil]
任何替代方案?
答案 0 :(得分:11)
h.select { |_, v| v }.keys
将采用相同的方式,但更具可读性。
答案 1 :(得分:0)
您也可以
s = {}
h.each do |k,v|
s[k] = v if v==true
end