迭代二维数组并了解当前位置

Nun*_*ado 4 ruby arrays iteration

我试图迭代使用以下行创建的多维数组

迭代我使用以下代码

visiblematrix= Array.new (10) {Array.new(10){0}}
Run Code Online (Sandbox Code Playgroud)

但这不允许我在迭代时知道当前的x,y位置.如何在不诉诸临时变量的情况下找到它

visiblematrix.each do |x|
            x.each do |y|
                  puts y
            end 
end 
Run Code Online (Sandbox Code Playgroud)

Teo*_*las 19

您还可以使用Enumerable#each_with_index方法(ruby数组包含Enumerable mixin).

visiblematrix.each_with_index do |x, xi|
  x.each_with_index do |y, yi|
    puts "element [#{xi}, #{yi}] is #{y}"
  end
end
Run Code Online (Sandbox Code Playgroud)


Bea*_*ish 8

使用each_index而不仅仅是each.

请记住,x和y现在将是您的索引而不是该索引处的值.所以visiblematrix [x]等