我有两个具有相同键的哈希
{1=>2, 2=>450, 3=>3}
和
{1=>'1232', 2=>'ffsa', 3=>'vdsvds'}
我想将它们合并到此
{
1=> {:number => 2, :string => '1232'},
2=>{:number => 450, :string => 'ffsa'},
3=>{:number => 3, :string => 'vdsvds'}
}
从第一个哈希中获取子项'number'
的值,从第二个哈希中获取子项'string'
的值。实现这一目标的最佳方法是什么?
答案 0 :(得分:8)
这是一种方式:
h1 = {1=>2, 2=>450, 3=>3}
h2 = {1=>'1232', 2=>'ffsa', 3=>'vdsvds'}
h1.merge(h2) { |_, o, n| { number: o, string: n } }
# => {
# 1=>{:number=>2, :string=>"1232"},
# 2=>{:number=>450, :string=>"ffsa"},
# 3=>{:number=>3, :string=>"vdsvds"}
# }