Jör*_*tag 77
假设你有一个Hash将旧键映射到新键,你可以做类似的事情
hsh.map {|k, v| [key_map[k], v] }.to_h
Run Code Online (Sandbox Code Playgroud)
San*_*osh 10
Ruby 2.5具有Hash#transform_keys!方法。使用按键映射的示例
h = {a: 1, b: 2, c: 3}
key_map = {a: 'A', b: 'B', c: 'C'}
h.transform_keys! {|k| key_map[k]}
# => {"A"=>1, "B"=>2, "C"=>3}
Run Code Online (Sandbox Code Playgroud)
您还可以将symbol#toproc快捷方式与transform_keys配合使用,例如:
h.transform_keys! &:upcase
# => {"A"=>1, "B"=>2, "C"=>3}
Run Code Online (Sandbox Code Playgroud)