Мне отправляют вложенный хэш, который нужно отсортировать по его значениям.Например:
@foo = {"a"=>{"z"=>5, "y"=>3, "x"=>88}, "b"=>{"a"=>2, "d"=>-5}}
При выполнении следующего:
@foo["a"].sort{|a,b| a[1]<=>b[1]}
Я получаю:
[["y", 3], ["z", 5], ["x", 88]]
Это здорово, это именно то, что я хочу.Проблема в том, что я не всегда буду знать, какие ключи отправляются мне, поэтому мне нужен какой-то цикл.Я пытался сделать следующее:
@foo.each do |e|
e.sort{|a,b| a[1]<=>b[1]}
end
Для меня это имеет смысл, поскольку, если я вручную вызываю @ foo.first [0], я получаю
"a"
и @ foo.first [1] возвращает
{"z"=>5, "y"=>3, "x"=>8}
, но по какой-то причине это неправильно сортируется (например, вообще).Я предполагаю, что это потому, что каждый вызывает сортировку по всему хеш-объекту, а не по значениям "a".Как получить доступ к значениям вложенного хэша, не зная, что это за ключ?