2010-09-30 7 views
7

zum Beispiel:Wie würde ich ein Array aus einem Array von Hashes in Ruby on Rails auflösen und extrahieren?

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

Wie kann ich die E-Mail-Spalte extrahieren und sie in seiner eigenen Array?

+0

Haben * Sie * mit einem Array von Hashes zu beginnen? Wenn das Array-of-Hashes nur ein Zwischenschritt ist, um die E-Mail-Adressen zu erhalten, dann würde ich sagen, dass es eine einfachere und elegantere Lösung für Ihr Problem gibt. –

Antwort

16

Nennen wir Ihr Array users. Sie können dies tun:

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

Diese an dem Hashes eines nach dem anderem sehen, sie u Aufruf, extrahiert die :email Schlüssel, und gibt die Ergebnisse in einer neuen Reihe von Benutzer-E-Mail.

+1

Sie könnten auch users.collect {| u | verwenden u [: email]}, collect ist ein Alias ​​für Map, was für einige Leute einfacher sein kann (diejenigen, die keinen funktionalen Hintergrund haben). –

+0

genial! das hat perfekt funktioniert. Vielen Dank – Tim

Verwandte Themen