2012-01-26 301 views

回答

42

哈希包含Enumerable,因此您可以使用該模塊上的許多方法來遍歷哈希。它也有這個方便的方法:

hash.has_value?(value_you_seek) 

要找到與該值相關的關鍵:

hash.key(value_you_seek) 

API documentation for Ruby (1.9.2)應該是有幫助的。

+0

這並不遍歷嵌套哈希 – nathanengineer

1

Hash這個類有select方法,它將返回一個塊的新散列,其中的塊爲真;

h = { "a" => 100, "b" => 200, "c" => 300 } 
h.select {|k,v| v == 200} #=> {"b" => 200} 

這樣你就可以按價值進行搜索,並得到你的鑰匙!

+0

爲什麼這樣做時,哈希已建成的方法呢? – max

-2

的,你可以用更短的版本將是hash.values

0

雖然Hash#has_key?的作品,但中,Matz寫道:here,已經贊成不贊成Hash#key?

Hashkey?方法告訴你一個給定的鍵是否存在。

hash.key?(:some_key) 
0

如果你做了hash.values,你現在有一個數組。

陣列上,你可以利用可枚舉的搜索方法include?

hash.values.include?(value_you_seek) 
相關問題