how do i loop over a hash of hashes in ruby

前端 未结 5 894
故里飘歌
故里飘歌 2020-12-13 05:32

OK so i have this hash

 h
 => {\"67676.mpa\"=>{:link=>\"pool/sdafdsaff\", :size=>4556}} 

>  h.each do |key, value|
>     puts key
>   p         


        
5条回答
  •  Happy的楠姐
    2020-12-13 06:04

    I little improved Travis's answer, how about this gist:

    https://gist.github.com/kjakub/be17d9439359d14e6f86

    class Hash
    
      def nested_each_pair
        self.each_pair do |k,v|
          if v.is_a?(Hash)
            v.nested_each_pair {|k,v| yield k,v}
          else
            yield(k,v)
          end
        end
      end
    
    end
    
    {"root"=>{:a=>"tom", :b=>{:c => 1, :x => 2}}}.nested_each_pair{|k,v|
      puts k
      puts v
    }
    

提交回复
热议问题