Попробуйте использовать
each_with_index
Предположим, у вас есть массив:
arr = [3,[2,3],4,5]
И вы хотите скрыть с помощью хэша (пара ключ-значение). «Ключ» обозначает индекс массива, а «значение» обозначает значение массива. Возьмите пустой хеш, итерируйте с each_with_index, вставьте в хеш и, наконец, напечатайте хеш.
Попробуйте это:
hash={}
arr.each_with_index do |val, index|
hash[index]=val
end
p hash
Его вывод будет:
{0=>3, 1=>[2, 3], 2=>4, 3=>5}
Если вы хотите, чтобы индекс всегда начинался с 1 или 2 и т. Д., Используйте
arr.each.with_index(1) do |val, index|
hash[index] = val
end
Вывод будет:
{1=>3, 2=>[2, 3], 3=>4, 4=>5}