2010-09-30 26 views
7

por ejemplo:¿Cómo dividir y extraer una matriz de una matriz de hash en Ruby on Rails?

[ (id=>1, email=>'[email protected]', name=>'tim'), 
    (id=>2, email=>'[email protected]', name=>'joe'), 
    (id=>3, email=>'[email protected]', name=>'dan') ] 

¿Cómo puedo extraer la columna de correo electrónico y lo puso en su propia matriz?

+0

¿Tiene * que * para comenzar con una matriz de hashes? Si la matriz de hashes es solo un paso intermedio para obtener las direcciones de correo electrónico, entonces diría que hay una solución más directa y elegante para su problema. –

Respuesta

16

Llamemos a su matriz users. Usted puede hacer esto:

users.map{|u| u[:email]} 

Esto se ve en los hashes de uno en uno, llamándolos u, extrae la clave :email, y devuelve los resultados en una nueva serie de mensajes de correo electrónico del usuario.

+1

También podría usar users.collect {| u | u [: email]}, collect es un alias para el mapa, que podría ser más fácil para algunas personas (aquellas que no tienen un fondo funcional). –

+0

¡increíble! esto funcionó a la perfección. gracias un montón – Tim

Cuestiones relacionadas