2010-09-30 3 views
7

:Ruby on Rails'deki bir dizi karma dizisinden nasıl bir dizi ayırır ve ayıklayabilirim? örneğin

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

nasıl e-posta sütunu çıkarabilir ve kendi dizide koydu?

+0

Bir dizi karma ile başlamak için * siz * var mı? Eğer karma dizisi e-posta adreslerini almak için yalnızca bir ara adım ise, o zaman sorununuza daha basit ve zarif bir çözüm olduğunu söyleyebilirim. –

cevap

16

Dizininizi users numaralı telefondan arayalım. Bunu yapabilirsiniz:

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

Bu sağlamalarının bakar teker teker onları u arayarak, :email anahtarı ayıklar ve kullanıcı e-postaların yeni dizide sonuçları döndürür.

+1

Ayrıca şunları kullanabilirsiniz: users.collect {| u | u [: e-posta]}, topla, bazı kişiler için daha kolay olabilecek bir takma addır (işlevsel bir arka planı olmayanlar). –

+0

harika! Bu mükemmel çalıştı. çok teşekkürler – Tim