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}
sortedByValues = foo.sort {|a, b| a[1] <==> b[1]}
#sortedByValues is an array of array not longer a hash!
sortedByValues.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
then, I can do.
ortedByValues.to_hash.keys.join ','
Is there a better way to do this?