Скажем, у меня есть Hash вроде этого:возложите каждый элемент хеша внутри массива Ruby,
my_hash = {"a"=>{"a1"=>"b1"}, "b"=>"b", "c"=>{"c1"=>{"c2"=>"c3"}}}
И я хочу, чтобы преобразовать каждый элемент внутри хэш, который также является хэш для размещения внутри массив.
Например, я хочу законченная Хеш выглядеть следующим образом:
{"a"=>[{"a1"=>"b1"}], "b"=>"b", "c"=>[{"c1"=>[{"c2"=>"c3"}]}]}
Вот что я пытался до сих пор, но мне нужно работать рекурсивно, и я не совсем уверен, как сделайте эту работу:
my_hash.each do |k,v|
if v.class == Hash
my_hash[k] = [] << v
end
end
=> {"a"=>[{"a1"=>"b1"}], "b"=>"b", "c"=>[{"c1"=>{"c2"=>"c3"}}]}
@sergiotulentsev, теперь оба ответа удалены. Оба должны быть превращены в ответы сообщества wiki. –
@ theTinMan: Хм, я вижу, что все еще стоит. Не нужно иметь их обоих. –
@SergioTulentsev, Да, другой был восстановлен сразу после обмена комментариями. –