如何通过一组新的给定键更改散列的所有键

如何通过一组新的给定键更改散列的所有键

本文介绍了如何通过一组新的给定键更改散列的所有键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何通过一组新的给定键更改散列的所有键?

How do I change all the keys of a hash by a new set of given keys?

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

Is there a way to do that elegantly?

推荐答案

Ruby 2.5 有 Hash#transform_keys! 方法.使用键映射的示例

Ruby 2.5 has Hash#transform_keys! method. Example using a map of 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} 

您也可以使用带有 transform_keys 的符号#toproc 快捷方式,例如:

You can also use symbol#toproc shortcut with transform_keys Eg:

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

这篇关于如何通过一组新的给定键更改散列的所有键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-21 23:22