x = {:name => "John", :data => {:physical => {:age => 25, :weight => 150}}}
我希望将数据的子属性向上移动一个级别(但不一定只是简单地展平所有属性)。在这种情况下,我基本上想将 :physical 属性“向上”移动一个级别。
我正在尝试这个
y = x[:data']
y.each{ |key| x[key] = y[key] }
但是我得到...
x = x.except(:data)
=> {:name=>"John", [:physical, {:age=>25, :weight=>150}]=>nil}
我在找...
=> {:name=>"John", :physical => {:age=>25, :weight=>150}}
最佳答案
试试这个:
x = x.merge(x.delete(:data))
关于ruby - 如何将 Ruby 哈希 "up"中的属性移动一级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6324937/