2009-11-17 6 views
0

J'ai un grand tableau bidimensionnel A, et également un tableau plat B de deux éléments. Comment puis-je accéder rapidement à l'élément à partir du tableau A en utilisant les nombres (coordonnées) dans B? La seule chose que je peux faire maintenant est:Ruby: accès à l'élément de tableau indice

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

Mais le chemin de ces tableaux réels à travers les noms des membres de ma classe est trop longue et sale, et les noms de tableaux réels sont trop longs ... donc je Je me demande si c'est possible de faciliter le travail.

+0

Ce serait une tranche de tableau, pas une recherche bidimensionnelle. – Svante

Répondre

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

Si vous aimez cette façon, les deux premières lignes peuvent être encore réduites en 'x, y = B'! –

0

Qu'en est-il de transformer A en un hachage avec des tableaux à deux éléments comme clés? Alors, où vous avez maintenant quelque chose comme ceci:

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

Vous souhaitez avoir la place:

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]] 

J'sais si cela va aider dans votre situation réelle, mais peut-être il va vous donner quelques idées.