2009-11-17 49 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]] 

说不上如果将在您的实际情况帮助,但也许会给你一些想法。