
a = [ { "Animals" => [ { "Reptiles" => nil },{ "Birds" => [ { "Eagles" => nil },{ "Pigeons" => nil },{ "Crows" => nil } ] } ] }] 我不明白我是怎么做到的.
在哪里我可以找到一些例子或我可以在谷歌搜索?
码
def arrayify(arr) a = split_arr(arr) a.map do |h| k = h.keys.first v = h.values.first case v when Array then { k => arrayify(v) } else { k=>v } end endenddef split_arr(arr) a = [] while arr.any? word = arr.shift if arr.empty? || arr.first != ?( a << { word=>nil } else arr.shift close_count = 0 b = [] loop do token = arr.shift case token when ?) break if close_count == 0 close_count -= 1 when ?( then close_count += 1 end b << token end a << { word=>b } end end aend 例
str = "Animals ( Reptiles Birds ( Eagles Pigeons Crows ) ) Foods ( " + "Snacks Breakfast ( Pancakes Waffles ) )"arrayify(str.split) #=> [{"Animals"=>[{"Reptiles" =>nil},# {"Birds" =>[{"Eagles" =>nil},# {"Pigeons"=>nil},# {"Crows" =>nil} # ] # } # ] # },# {"Foods" =>[{"Snacks" =>nil},# {"Breakfast"=>[{"Pancakes"=>nil},# {"Waffles" =>nil} # ] # } # ] # } # ] 总结 以上是内存溢出为你收集整理的将带括号的字符串转换为树,Ruby全部内容,希望文章能够帮你解决将带括号的字符串转换为树,Ruby所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)