У меня есть встречный хеш, который я пытаюсь отсортировать по количеству. Проблема, с которой я сталкиваюсь, заключается в том, что функция Hash.sort по умолчанию сортирует числа как строки, а не по размеру.
т.е. учитывая хэш:
metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }
Запуск этого кода:
metrics.sort {|a1,a2| a2[1]<=>a1[1]}
вернет отсортированный массив:
[ 'siteb.com', 9, 'sitea.com', 745, 'sitec.com', 10]
Даже если число 745 больше, чем 9, 9 появится первым в списке. Когда я пытаюсь показать, кто имеет наибольшее количество очков, это усложняет мою жизнь. :)
Любые идеи о том, как отсортировать хэш (или даже массив) по размеру числового значения?
Я ценю любую помощь.