|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Is there a way in Ruby to pass a hash value from string (or whatever) to
an Array dinamically? Example: An array of objects Teacher, each with his name and belonging school. After iterating though its elements, we want an output of the type, "school_name_A" => "teacher_name_A", "school_name_B" => ["teacher_name_B", "teacher_name_C"]. ...or maybe there is another simpler way of doing this? -- Posted via http://www.ruby-forum.com/. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Alvaro Perez wrote:
> Is there a way in Ruby to pass a hash value from string (or whatever) to > an Array dinamically? > > Example: An array of objects Teacher, each with his name and belonging > school. After iterating though its elements, we want an output of the > type, "school_name_A" => "teacher_name_A", "school_name_B" => > ["teacher_name_B", "teacher_name_C"]. It's easier if you allow: {"school_name_A" => ["teacher_name_A"], "school_name_B" => ["teacher_name_B", "teacher_name_C"]} That way you can do this: schools = Hash.new{|h,k| h[k] = []} teachers.each {|teacher| schools[teacher.school] << teacher.name} -- Alex |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Alvaro Perez wrote:
> Example: An array of objects Teacher, each with his name and belonging > school. After iterating though its elements, we want an output of the > type, "school_name_A" => "teacher_name_A", "school_name_B" => > ["teacher_name_B", "teacher_name_C"]. hash = Hash.new {|h,k| h[k] = []} teachers.each do |teacher| hash[teacher.school] << teacher.name end HTH, Sebastian -- NP: Explosions in the Sky - Snow And Lights Jabber: sepp2k@jabber.org ICQ: 205544826 |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Wow, exactly same solution
![]() but it works! thank you very much to both. -- Posted via http://www.ruby-forum.com/. |
|
![]() |
| Outils de la discussion | |
|
|