2011-04-18 19 views
6

que tienen una matriz de objetos de rubí que se ve algo como esto:Forma más Ruby para obtener una matriz que contiene valores específicos de una matriz de objetos?

[#<email: "someemail" other_properties: "SDFDF">, #<...>, #<...>] 

Cada uno de los objetos de la matriz tiene una propiedad email. Quiero obtener una nueva matriz de todas las propiedades de correo electrónico de los objetos ruby ​​en la matriz.

Después de ejecutar el código, me gustaría tener una matriz que se veía así:

["[email protected]", "[email protected]", ...] 

Soy nuevo al rubí y querer hacer esto de la manera más rubyish posible.

Mi pregunta es, ¿cuál es la mejor manera de hacer esto en ruby?

Respuesta

16

Usted puede utilizar el método map aplicar un bloque a cada elemento de la matriz, el retorno de una nueva matriz que contiene los resultados de cada invocación:

somearray.map {|x| x.email} 
+0

Gracias! Esto es exactamente lo que buscaba. Aceptaré tan pronto como SO me lo permita. :) – Alex

+8

En Ruby 1.87+ puedes simplificar esto como 'somearray.map (&: email)' – Phrogz

Cuestiones relacionadas