2009-11-17 75 views
0

我有一個很大的二維數組A,還有一個扁平數組B兩個元素。如何使用B中的數字(座標)快速訪問A陣列中的元素?我現在唯一可以做的事情是:Ruby:訪問數組元素提示

A[B[0],B[1]] 

但要完全通過我的類成員的名字,這些實際陣列過長和髒,和實際的數組名稱太長......所以我想知道是否有可能緩解這項工作。

+0

這將是一個數組切片,而不是一個二維查找。 – Svante

回答

0
x = B[0] 
y = B[1] 
A[x][y] 
+0

如果你喜歡這種方式,前兩行可以進一步摺疊成'x,y = B'! –

0

如何將A轉變爲一個Hash,並且使用雙元素數組作爲鍵?那麼,你現在有這樣的事情:

A = [["TopL","TopR"],["CenterL","CenterR"],["BottomL","BottomR"]] 
B = [[0,1],[1,0],[2,1]] 
A[B[x][0]][B[x][1]] 

你會反而有:

A = {[0,0] => "TopL", [0,1] => "TopR", [1,0] => "CenterL", [1,1] => "CenterR", [2,0] => "BottomL", [2,1] => "BottomR"} 
B = [[0,1],[1,0],[2,1]] 
A[B[x]] 

說不上如果將在您的實際情況幫助,但也許會給你一些想法。