Zab*_*bba 2 ruby ruby-on-rails
如何转换看起来像这样的Ruby Hash:
{
:axis => [1,2],
:"coord.x" => [12,13],
:"coord.y" => [14,15],
}
Run Code Online (Sandbox Code Playgroud)
进入:
{
:axis => [1,2], #unchaged from input (ok)
:coord => #this has become a hash from coord.x and coord.y keys above
{
:x => [12,13]
:y => [14,15]
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道从哪里开始!
# {"a.b.c"=>"v", "b.c.d"=>"c"} ---> {:a=>{:b=>{:c=>"v"}}, :b=>{:c=>{:d=>"c"}}}
def flat_keys_to_nested(hash)
hash.each_with_object({}) do |(key,value), all|
key_parts = key.split('.').map!(&:to_sym)
leaf = key_parts[0...-1].inject(all) { |h, k| h[k] ||= {} }
leaf[key_parts.last] = value
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3785 次 |
| 最近记录: |