Ruby: Wie Sie die Gruppe ein Ruby-array?
Habe ich ein Ruby-array
> list = Request.find_all_by_artist("Metallica").map(&:song)
=> ["Nothing else Matters", "Enter sandman", "Enter Sandman", "Master of Puppets", "Master of Puppets", "Master of Puppets"]
und ich will eine Liste mit den Grafen, wie dieser:
{"Nothing Else Matters" => 1,
"Enter Sandman" => 2,
"Master of Puppets" => 3}
Also im Idealfall möchte ich einen hash, der mir das zählen und merken, wie ich Enter Sandman
und enter sandman
so brauche ich es groß-und Kleinschreibung. Ich bin mir ziemlich sicher, dass ich Durchlaufen, aber gibt es eine bessere Möglichkeit?
InformationsquelleAutor der Frage Matt Elhotiby | 2010-10-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Group by erstellt einen hash aus der
capitalize
d-version einer album-name ist ein array, der alle Fäden inlist
entsprechen (z.B."Enter sandman" => ["Enter Sandman", "Enter sandman"]
). Diemap
dann ersetzt jedes array seine Länge, so erhalten Sie z.B.["Enter sandman", 2]
für"Enter sandman"
.Wenn Sie brauchen, das Ergebnis ist ein hash, können Sie rufen Sie
to_h
auf das Ergebnis oder wickeln Sie einHash[ ]
um ihn herum.InformationsquelleAutor der Antwort sepp2k
InformationsquelleAutor der Antwort ghostdog74
Anderes nehmen:
Als ich sagte, Sie könnten es vorziehen,
titlecase
InformationsquelleAutor der Antwort glenn jackman
Gruppierung und Sortierung einer Datenmenge von unbekannter Größe in Ruby sollte die Wahl der letzten resort. Dies ist eine lästige Pflicht am besten Links an die DB. In der Regel Probleme wie bei Euch gelöst mit einer Kombination von
COUNT
GROUP BY
HAVING
undORDER BY
Klauseln. Glücklicherweise Schienen bietet einecount
Methode für solche Fälle.InformationsquelleAutor der Antwort Harish Shetty