我想在條件滿足時將哈希鍵值提取到數組。例如,散列h I類要提取其中的值是「真」的按鍵:紅寶石哈希鍵陣列條件的散列值
h = { :a => true, :b => false, :c =>true }
我想出這個:
h.map {|k,v| k if v==true} - [nil]
任何的替代品?
我想在條件滿足時將哈希鍵值提取到數組。例如,散列h I類要提取其中的值是「真」的按鍵:紅寶石哈希鍵陣列條件的散列值
h = { :a => true, :b => false, :c =>true }
我想出這個:
h.map {|k,v| k if v==true} - [nil]
任何的替代品?
你也可以做
s = {}
h.each do |k,v|
s[k] = v if v==true
end
地圖和選擇的方法是別名,所以你可以使用其中之一。 – sbagdat
@sbagdat,準確地說,'map'和*'collect' *是別名,而不是'select'。 ['select'](http://apidock.com/ruby/Hash/select)做不同的工作,在Hash的情況下返回不同的類型:它返回Hash,而map/collect返回Array。 – NIA
對不起,我的錯誤。 – sbagdat