以下是我班上的问题。
给定变量
some_array = [[:a, 123], [:b, 456]]
,
将some_array转换为此哈希:{a: 123, b: 456}
答案 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] == :a
和item[1] == 123
的相同示例。
然后我在创建哈希时使用一些简写 - 即hash[key] = value
。在这种情况下,我希望密钥为:a(项目[0]),值为123(项目[1])。所以我可以使用hash[item[0]] = item[1]
。
希望有所帮助!
答案 1 :(得分:1)
要转换为哈希,只需使用.to_h方法
some_array.to_h