将数组转换为哈希(Ruby)

时间:2017-01-24 18:13:32

标签: arrays ruby hash

以下是我班上的问题。

  

给定变量some_array = [[:a, 123], [:b, 456]]
  将some_array转换为此哈希:{a: 123, b: 456}

2 个答案:

答案 0 :(得分:2)

我也是初学者,所以这可能有点低效,但这就是我要解释的方法(我确定有更简单的方法,但既然你提到这是为了一堂课,我以为我会以长篇大论解释一下):

hash={}

some_array.each do |item|
    hash[item[0]] = item[1]
end

为了解释一下,我首先创建一个空哈希,稍后我将使用它。

然后我使用some_array方法循环浏览each。这会将some_array中的每个元素分配给变量item。鉴于some_array是一个嵌套数组(基本上意味着它是一个数组数组),item变量将采用内部数组的值 - 例如,item = [:a, 123]

然后我们可以在创建哈希时访问item中的每个元素。按照我之前提到的item[0] == :aitem[1] == 123的相同示例。

然后我在创建哈希时使用一些简写 - 即hash[key] = value。在这种情况下,我希望密钥为:a(项目[0]),值为123(项目[1])。所以我可以使用hash[item[0]] = item[1]

希望有所帮助!

答案 1 :(得分:1)

要转换为哈希,只需使用.to_h方法

some_array.to_h