2011-04-18 7 views
6

Mam tablicę obiektów rubinowe, który wygląda mniej więcej tak:Najbardziej Rubyish Way To Array zawierające określone wartości z tablicy obiektów?

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

Każdy z obiektów w tablicy ma właściwość email. Chcę uzyskać nową tablicę wszystkich właściwości email obiektów ruby ​​w tablicy.

Po wykonaniu kodu, chciałbym mieć tablicę, która wyglądała tak:

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

jestem nowsze do ruby ​​i chcesz zrobić to w możliwie najbardziej rubyish sposób.

Moje pytanie brzmi, jaki jest najlepszy sposób robienia tego w rubinach?

Odpowiedz

16

Można użyć metody map zastosować blok do każdego elementu tablicy, zwracając nową tablicę zawierającą wyniki każdego wywołania:

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

dziękuję! To dokładnie to, po czym byłem. Przyjmę, jak tylko pozwoli mi SO. :) – Alex

+8

W Ruby 1.87+ możesz uprościć to jako 'somearray.map (&: email)' – Phrogz

Powiązane problemy