微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将Ruby哈希中的属性“上移”一级

如何解决如何将Ruby哈希中的属性“上移”一级

|
x = {:name => \"John\",:data => {:physical => {:age => 25,:weight => 150}}}
我希望将数据的子属性上移一个级别(但不必简单地将所有属性展平)。在这种情况下,我实质上想将:physical属性\“ up \”移到一个级别。 我正在尝试
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))
    ,        我会按照以下方式进行操作:
x = {:name => \"John\",:data => {:physical => {:age => 25,:weight => 150}}}

x[:physical] = x.delete(:data)[:physical]

pp x #=> {:name=>\"John\",:physical=>{:age=>25,:weight=>150}}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。