简体   繁体   中英

Ruby hash keys to array conditional on hash value

I would like to extract hash key values to an array when a condition is met. For example, with hash h I want to extract the keys where the values are "true":

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

I've come up with this:

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

Any alternatives?

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

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

You can also do

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM