gruppiertes sortieren

02/02/2013 - 23:57 von Christian Anders | Report spam
Ich muss eine Adressenliste gruppieren und sortieren. Die Gruppierung
ist gelungen:

require 'yaml'
address="\
schueler:
- name: Erich
gruppe: Y
- name: Max
gruppe: A
- name: Lea
gruppe: B
- name: Pia
gruppe: A
- name: Anna
gruppe: B
"
adressen = YAML.load (address)

schuelergruppe=adressen['schueler'].group_by {|x| x['gruppe']}

schuelergruppe.sort.each do |y|
puts '# ' + y[0]
schuelergruppe[y[0]].each do |z|
puts z['name']
puts''
end
end


Wie kann ich innerhalb der Gruppen nach dem Namen sortieren, sodass
folgendes herauskommt?

# A
Max

Pia

# B
Anna

Lea

# Y
Erich


danke,

christian
 

Lesen sie die antworten

#1 Christian Anders
03/02/2013 - 10:20 | Warnen spam
Christian Anders wrote:
Ich muss eine Adressenliste gruppieren und sortieren. Die Gruppierung
ist gelungen:


nun auch die Sortierung. Die Adressenliste muss in ganz
unterschiedlichen Formaten und zu unterschiedlichen Zwecken ausgegeben
werden. Da wàre es toll, wenn beispielsweise die Gruppierung und
Sortierung in eine Methode gepackt wàre. Ich fürchte, dass es sonst
unübersichtlich wird. Das steht noch aus. Vllt kann mir ja jemand den
Weg weisen.

require 'yaml'
address="\
schueler:
- name: Erich
gruppe: Y
- name: Max
gruppe: A
- name: Lea
gruppe: B
- name: Pia
gruppe: A
- name: Anna
gruppe: B
"
adressen = YAML.load (address)

schuelergruppe=adressen['schueler'].group_by {|x| x['gruppe']}

schuelergruppe.sort.each do |y|
puts '# ' + y[0]
schuelergruppe[y[0]].sort_by {|k| k['name']}.each do |z|
puts z['name']
puts''
end
end

Ähnliche fragen