2010-09-30 13 views
7

per esempio:Come faccio a separare ed estrarre un array da un array di hash in Ruby on Rails?

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

Come posso estrarre la colonna di posta elettronica e metterlo nel proprio array?

+0

È * necessario * iniziare con un array di hash? Se l'array-of-hashes è solo un passaggio intermedio per ottenere gli indirizzi e-mail, allora direi che c'è una soluzione più semplice ed elegante al tuo problema. –

risposta

16

Chiamiamo l'array users. Si può fare questo:

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

Questo guarda gli hash uno per uno, li u chiamando, estrae la chiave :email, e restituisce i risultati in una nuova serie di messaggi di posta elettronica degli utenti.

+1

Puoi anche utilizzare users.collect {| u | u [: email]}, collect è un alias per la mappa, che potrebbe essere più semplice per alcune persone (coloro che non hanno uno sfondo funzionale). –

+0

fantastico! questo ha funzionato perfettamente. grazie mille – Tim

Problemi correlati