Creating and iterating a 2d array in Ruby
a = [[1, 2], [3, 4]]a.each do |sub| sub.each do |int| puts int endend# Output:# 1# 2# 3# 4
or:
a = [[1, 2], [3, 4]]a.each do |(x, y)| puts x + yend# Output:# 3# 7
The easiest way to create a 2d array is by the following:
arr1 = Array.new(3) { Array.new(3)}
The code above creates a 2D array with three rows and three columns.
Cheers.
irb(main):001:0> a = []=> []irb(main):002:0> a1 = [1, 2]=> [1, 2]irb(main):003:0> a2 = [3, 4]=> [3, 4]irb(main):004:0> a.push a1 => [[1, 2]]irb(main):005:0> a.push a2=> [[1, 2], [3, 4]]irb(main):006:0> a=> [[1, 2], [3, 4]]irb(main):007:0> a[0]=> [1, 2]irb(main):008:0> a[0][1]=> 2