Comment trier un Rubis de Hachage par numéro de valeur?

J'ai un compteur de hachage que je suis en train de trier par comte. Le problème, je suis en cours d'exécution en est que le Hachage par défaut.fonction de tri trie les nombres comme des chaînes de caractères plutôt que par la taille.

soit, compte tenu de Hachage:

metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }

L'exécution de ce code:

metrics.sort {|a1,a2| a2[1]<=>a1[1]}

va retourner un tableau trié:

[ 'siteb.com', 9, 'sitea.com', 745, 'sitec.com', 10]

Même si 745 est un nombre plus grand que 9, 9 apparaissent en premier dans la liste. Lorsque vous essayez de montrer qui a le haut le comte, c'est faire de ma vie difficile. 🙂

Toutes les idées sur la façon de trier une table de hachage (ou une matrice de même) par le nombre de la valeur de la taille?

J'apprécie toute l'aide.

  • quelle version de ruby utilisez-vous? votre résultat de tri est très étrange
InformationsquelleAutor Dustin M. | 2010-03-29