Ответ 1
Попробуйте использовать Hash#keys
и Hash#values
:
thirdKey = hsh.keys[2]
thirdValue = hsh.values[2]
В Ruby 1.9.x У меня есть хэш, который сохраняет свой порядок
hsh = {9=>2, 8=>3, 5=>2, 4=>2, 2=>1}
Есть ли способ получить ключ третьего элемента, кроме этого:
hsh.to_a[2][0]
Попробуйте использовать Hash#keys
и Hash#values
:
thirdKey = hsh.keys[2]
thirdValue = hsh.values[2]
Почему вы используете хеш вместо массива? Массив идеально подходит для упорядоченных коллекций.
array = [[9, 2], [8, 3], [5, 2], [4, 2], [2, 1]]
array.each { |pair| puts pair.first }
Сортировка массивов очень проста, в конечном счете.
disordered_array = [[4,2], [9,2], [8,3], [2,1], [5,2]]
disordered_array.sort { |a,b| b <=> a }
=> [[9, 2], [8, 3], [5, 2], [4, 2], [2, 1]]
Исправьте меня, если я ошибаюсь.