Ruby,多维数组推送错误

时间:2017-04-06 20:11:12

标签: ruby-on-rails arrays ruby

a = Pc()
a.brand = 'brand'
# etc.

我收到此错误 NoMethodError:未定义的方法`push'为零:NilClass

我想找到一个矩形内的所有方块,但是当我尝试将该方块保存到自定义数组时,我得到一个错误。

  array = [[]]
  for level in 0..counter-1
    for line in 0..counter-1
      array[level].push(rectangle[x+level][y+line])
    end
  end

我想在这里做所有生成像例如数组[[3,4],[5,2]]的方格,这将是

array[level].push(rectangle[x+level][y+line]) 。 问题是3 4 5 2有数字而不是变量是有效的,但是变量'等级'它给了我错误,但是如果我使用常数我就无法生成多级数组。

任何帮助?

2 个答案:

答案 0 :(得分:3)

问题是array只有一个元素,这就是它为level = 0工作的原因。你可以像这样轻松修复它:

 array = []
 for level in 0..counter-1
   array.push []
   for line in 0..counter-1
     array[level].push(rectangle[x+level][y+line])
   end
 end

答案 1 :(得分:1)

找到了解决方案

  2darray = [[]]
  i=0
  for level in 0..counter-1
    array = []
    for line in 0..counter-1
      array.push(rectangle[x+level][y+line])
    end
    2darray.push(array)

生成1d数组并将其附加到2d数组