Ruby - 一个哈希的键到另一个哈希的值

时间:2015-02-14 02:46:20

标签: ruby hash

我必须像这样的哈希:

hash1 = {
   "a" => 1,
   "b" => 1,
   "c" => 1,
   "d" => 1
}

hash2 = {
  "1" => 1,
  "2" => 1,
  "3" => 1,
  "4" => 1
}

我需要合并它们,所以我最终得到了这个:

hash1 = {
  "a" => "1",
  "b" => "2",
  "c" => "3",
  "d" => "4"
}

但我不知道从哪里开始。帮助赞赏。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

Hash[hash1.keys.zip(hash2.keys)]

首先,您可以获得hash1.keyshash2.keys每个哈希的密钥数组:

["a", "b", "c", "d"]
["1", "2", "3", "4"]

其次,您使用hash1.keys.zip(hash2.keys)创建一个数组数组:

[["a", "1"], ["b", "2"], ["c", "3"], ["d", "4"]]

然后使用Hash[<...>] 创建一个Hash,其中第一个内部数组的第一个值作为键,第二个值作为值:

{"a"=>"1", "b"=>"2", "c"=>"3", "d"=>"4"}

Example