2012-01-26 18 views

Respuesta

42

Hash incluye Enumerable, por lo que puede utilizar los diversos métodos en ese módulo para recorrer el hash. También cuenta con este método práctico:

hash.has_value?(value_you_seek) 

para encontrar la clave asociada con ese valor:

hash.key(value_you_seek) 

Este API documentation for Ruby (1.9.2) debe ser útil.

+0

Esto no atraviesa hashes anidados – nathanengineer

1

La clase Hash tiene el método select que devolverá un nuevo hash de entradas para las cuales el bloque es verdadero;

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

¡De esta manera buscará por valor y obtendrá su llave!

+0

¿Por qué esto cuando Hash ha construido en los métodos? – max

-2

Una versión aún más corto que se puede utilizar sería hash.values

0

Mientras que Hash#has_key? obras pero, como escribió Matz here, se ha desaprobado en favor de Hash#key?.

Hash El método key? le indica si una determinada clave está presente o no.

hash.key?(:some_key) 
0

Si lo hace hash.values, ahora tiene una matriz.

En las matrices se puede utilizar el método de búsqueda Enumerable include?

hash.values.include?(value_you_seek) 
Cuestiones relacionadas