Я хочу найти какой-нибудь элегантный способ добиться этого. Может быть, как следующий:
hash={"1"=>"1","2"=>"2"} r=[] hash.each do |k,v| if k!="1" r<<k end end puts r
Есть ли лучший способ добиться этого?
Вы можете использовать «разность массивов»:
hash.keys - ['1'] #=> ["2"]
puts r = hash.keys.select { |i| i != "1" }
Вот один из способов:
r = hash.select { |k,v,| k != "1" } puts r
Надеюсь, это поможет, Бен
hash.reject{|k,v| k == "1"}
Мне нравится отклонять выбор с отрицательным тестом, потому что он более читабелен.«Отклонить значения, где X ==« 1 »истинно« против »собирать значения, где x! =« 1 »верно».