我有:
Array1 = [x, y, z]
Array2 = [m, n]
a = b
hash1 = {Array1 => val1,
Array2 => val2,
a => c
}
如何在hash1内的Array1,Array2的每个元素内迭代?
hash1.each do |t|
t[0] #gives me Array1 as a string. I need [x,y,z]
end
答案 0 :(得分:1)
它不会给你一个字符串。它为您提供了正确的数组。
{
[1,2] => 'a'
}.each{|t| puts t[0].class}
# prints array
{
[1,2] => 'a'
}.each{|t| puts t[0][0]}
# prints 1
请注意,您正在使用哈希进行各项操作。您可以解构为块提供两个变量的键值对,如下所示:
{a:1, b:2}.each { |k,v| p k; p v }
#prints :a
#prints 1
#prints :b
#prints 2
答案 1 :(得分:0)
像这样的东西
hash1.keys.each do |k|
if k.is_a?(Array)
k.each do |v|
.. Do something here ..
end
end
end
只需将Do something here
替换为您想要的代码,v
将是数组中的值