3

条件が満たされたときに、ハッシュキー値を配列に抽出したいと思います。たとえば、ハッシュhを使用して、値が「true」であるキーを抽出します。

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

私はこれを思いついた:

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

代替案はありますか?

4

2 に答える 2

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

同じことをしますが、より読みやすい方法で。

于 2013-02-07T08:24:11.213 に答える
0

あなたもすることができます

s = {}
h.each do |k,v|
   s[k] = v if v==true
end
于 2013-02-07T10:11:38.053 に答える