红宝石 - 一个哈希键进入另一个哈希值(Ruby - keys of one hash into v

2019-10-21 21:03发布

我不得不哈希像这样:

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"
}

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

Answer 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"}



文章来源: Ruby - keys of one hash into values of another hash
标签: ruby hash