Ruby array from two ranges

multidimensional-array, range, ruby

Solution

This is similar to @nicooga's answer, but I would use a range instead of manually creating the array (ie so you do not have to type each number for larger arrays).

range = (1..3).to_a
range.product(range)
#=> [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]

Problem

I was looking for a way to create an array like: ``` [[1,1], [1,2], [1,3] [2,1], [2,2], [2,3] [3,1], [3,2], [3,3]] ``` For now I came up with this solution: ``` w=3 # or any int h=3 # or any int array = [] iw=1 while iw<=w do ih=1 while ih <=h do array<<[iw, ih] ih+=1 end#do iw+=1 end#do ``` But, I'm sure there must be a quicker way..? This takes 1.107 seconds... (w=1900; h=1080) Regards EDIT: I should've noticed that I'm stuck with 1.8.6..

Original source