Ruby:如何在哈希结构中过滤以获得<>"1"的所有键?

mlz*_*boy 4 ruby

我想找到一些优雅的方法来实现这一目标.也许像下面这样:

hash={"1"=>"1","2"=>"2"}
r=[]
hash.each do |k,v|
    if k!="1"
       r<<k
    end
end
puts r
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法实现这一目标

Mla*_*vić 12

你可以使用"数组差异":

hash.keys - ['1']
#=> ["2"]
Run Code Online (Sandbox Code Playgroud)