If I have an array of hashes, each with a day key:
[
{:day=>4,:name=>'Jay'},
{:day=>1,:name=>'Ben'},
{:day=>4,:name=>'Jill'}
]
What is the best way to convert it to a hash with sorted day values as the keys:
{
:1=>[{:day=>1,:name=>'Ben'}],
:4=>[{:day=>4,:name=>'Jay'},{:day=>4,:name=>'Jill'}]
}
I’m using Ruby 1.9.2 and Rails 3.1.1
Personally, I wouldn’t bother “sorting” the keys (which amounts to ordering-by-entry-time in Ruby 1.9) until I actually needed to. Then you can use
group_by:Instead, sort the keys when you actually need them.