【发布时间】:2019-03-21 15:40:58
【问题描述】:
我正在尝试在 ruby 中创建嵌套哈希。以下是我用来首先创建嵌套数组然后嵌套哈希的代码。
r=[]
y=[]
z={}
r= [["1776"], ["1094"], ["1666", "1077"]]
i=1
r.each do |t|
t.each do |h|
y << {:link => h, :group => i}
end
i = i + 1
end
y.each { |k,v| z[k] = v }
但是,当我输入 'p z' 时,我会不断输出以下输出:
{{:link=>"1776", :group=>1}=>nil, {:link=>"1094", :group=>2}=>nil
{:link=>"1666", :group=>3}=>nil, {:link=>"1077", :group=>3}=>nil}
我的目标是创建一个类似这样的结构:
{{:link=>"1666" {:group=>3}}, {:link=>"1077" {:group=>3}}}
我想使用链接键和值将此哈希数组与基于匹配的另一个数组合并 :link= 值,然后能够基于 :link 键调用每个子数组元素。
另外,当我每次尝试对哈希做任何事情时,我都会得到“没有将符号隐式转换为整数”不知道我做错了什么以及为什么我得到零。我尝试过扁平化,但没有帮助。
【问题讨论】:
-
你期望的输出结构是什么?
-
什么是
r?t的本质是什么?i、y和z未初始化。给我们一个例子(通过编辑你的问题),也许我们可以提供帮助。指定r(作为有效的 Ruby 对象)并向我们展示您想要的结果(“输出”),也可以作为有效的 Ruby 对象。 -
您的代码不起作用。
r、y和i未定义。 -
对不起,这是我第二次发帖,我确实考虑过了。我添加了一些额外的细节。这也让我有机会更多地思考我希望最后的日期结构。