Как получить длину строки и столбца двумерного массива в рельсах 3? - PullRequest
3 голосов
/ 17 марта 2011

Может кто-нибудь сказать, как получить длину строки и столбца двумерного массива в рельсах 3?

Мой массив выглядит следующим образом:


 payroll = Array.new[Payroll.count][2]

Когда мы получаем длину одномерного массива, нам нравится

array.length 
Как насчет двумерного массива?

Я думаю сделать что-то вроде:


 payroll = Array.new[Payroll.count][2]

 for i in 0..payroll.row.length - 1
  for j in 0..1
   puts payroll[i][j]
  end
 end

Я просто хочу знать правильный путь.Просьба помочь ...

1 Ответ

5 голосов
/ 17 марта 2011

Двумерный массив - это просто массив массивов, поэтому просто используйте payroll.length для получения высоты и payroll[0].length для получения ширины (при условии, что все строки имеют одинаковую ширину).Вот как выглядит ваш цикл, используя эту идею:

for i in 0..payroll.length - 1
  for j in 0..payroll[i].length - 1
    puts payroll[i][j]
  end
end

Но более простой способ перебрать массив - использовать метод итератора.Здесь я изменю циклы for на each.with_index (используйте each_with_index, если ваш Ruby не поддерживает each.with_index):

payroll.each.with_index do |row, i|
  row.each.with_index do |cell, j|
    puts payroll[i][j]
  end
end

И теперь я сделаю это еще проще, так какЯ предполагаю, что вам вообще не нужен доступ к индексам, только отдельные элементы в массиве:

payroll.each do |row|
  row.each do |cell|
    puts cell
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...