如何通过一组新的给定键更改哈希的所有键?
有没有办法优雅地做到这一点?
最佳答案
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}
您还可以将symbol#toproc快捷方式与transform_keys配合使用,例如:
h.transform_keys! &:upcase
# => {"A"=>1, "B"=>2, "C"=>3}