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

我得到這個錯誤NoMethodError:未定義的方法`推」的零:NilClass紅寶石,多維數組推錯誤

我想找到一個矩形內所有的廣場,但是當我試圖保存在自定義數組中的平方我得到一個錯誤。

array[level].push(rectangle[x+level][y+line]) 

所有我想在這裏做,以產生像例如陣列的正方形[[3,4],[5,2],其將是

3 4 5 2。 問題是,array[0].push(rectangle[x+level][y+line])與數量而不是變量工作,但與變量'水平'它給了我錯誤,但是,如果我使用常數我不能生成多級數組。

有幫助嗎?

+1

請顯示「counter」和「rectangle」來自哪裏。 –

+0

'rectangle'是函數參數(2d數組) – Aldon

回答

3

的問題是,array只有一個因素,這就是爲什麼它是工作水平= 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

找到了解決辦法

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陣列

+2

幾個問題與此。第一個for循環從不關閉,最後的2d數組將有一個空數組作爲其第一個元素 – user81269