Итерация по двумерному массиву и знание текущей позиции - PullRequest
4 голосов
/ 23 марта 2010

Я пытаюсь выполнить итерацию многомерного массива, созданного со следующей строкой

Для итерации я использую следующий код

visiblematrix= Array.new (10) {Array.new(10){0}}

Но это не позволяет мне узнать текущую позицию x, y во время итерации. как я могу это выяснить, не прибегая к временным переменным

visiblematrix.each do |x|
            x.each do |y|
                  puts y
            end 
end 

Ответы [ 2 ]

19 голосов
/ 23 марта 2010

Вы также можете использовать метод Enumerable # each_with_index (массивы ruby ​​включают в себя миксин Enumerable).

visiblematrix.each_with_index do |x, xi|
  x.each_with_index do |y, yi|
    puts "element [#{xi}, #{yi}] is #{y}"
  end
end
8 голосов
/ 23 марта 2010

используйте each_index вместо each.

Имейте в виду, x и y теперь будут вашим индексом, а не значением этого индекса. Так видна матрица [х] и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...