Ruby 1.8: Hash#sort not return hash but array (better way to do this?)
问题 In some scenario of Ruby 1.8. If I have a hash # k is name, v is order foo = { "Jim" => 1, "bar" => 1, "joe" => 2} sorted_by_values = foo.sort {|a, b| a[1] <==> b[1]} #sorted_by_values is an array of array, it's no longer a hash! sorted_by_values.keys.join ',' my workaround is to make method to_hash for Array class. class Array def to_hash(&block) Hash[*self.collect { |k, v| [k, v] }.flatten] end end I can then do the following: sorted_by_values.to_hash.keys.join ',' Is there a better way to