给定一组新密钥,我如何更改?

有没有办法优雅地做到这一点?

推荐答案

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} 

您也可以使用符号#toproc快捷键和转换键,例如:

h.transform_keys! &:upcase
# => {"A"=>1, "B"=>2, "C"=>3}

Ruby相关问答推荐

我可以在Ruby中以散列的形式访问方法的关键字参数吗?

Ruby:这两种混入模块方法是否等效?

Ruby 3 从多个预定纤程中收集结果

独立于 Rails 使用 HAML 文件中的布局

如何判断 Ruby 文件是否为空?

如何修改 Ruby gem

如何在 Sinatra 中解析 JSON 请求正文一次并将其公开给所有路由?

Ruby |= 赋值运算符

Ruby gem 权限被拒绝 /var/lib/gems 使用 Ubuntu

判断字符串是否包含Ruby数组中的任何子字符串

如何从最后一个元素开始遍历数组?

Ruby 的排序方法使用哪种算法?

Ruby字符串上的扫描和匹配有什么区别

Ruby 运算符优先级表

将 Ruby 哈希转换为 YAML

你能用 Ruby 开发原生 iPhone 应用程序吗?

如何在 Mac OS X Lion 中安装 Ruby 1.9.3?

`File` 对象访问模式的区别(即 w+, r+)

获取Ruby中当前目录的父目录

如何在 Rails 3 迁移中描述枚举列?