2012-01-26 117 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) 
相关问题