2009-08-18 22 views
17

¿Cuál es la mejor forma de recorrer una matriz de matrices?Cómo iterar en una matriz de matrices

sounds = [ [Name_1, link_1], [Name_2, link_2], [Name_3, link_3], [Name_4, link_4] ] 

Quiero la salida en HTML ul/li estructura:

<ul> 
    <li>Name_1, link_1</li> 
    <li>Name_2, link_2</li> 
    <li>Name_3, link_3</li> 
    <li>Name_4, link_4</li> 
</ul> 

Respuesta

36

Suponiendo que todos los arreglos interiores han fijado tamaño, puede utilizar auto-desembalaje para obtener cada elemento de la matriz interior en su propia variable cuando la iteración en la matriz externa. Ejemplo:

sounds.each do |name, link| 
    # do something 
end 
+1

2 años con ruby. Y sigue siendo fascinante. – arpit

1

utilizar un bucle anidado. El exterior itera sobre los sonidos, mientras que el interno itera sobre el elemento actual de los sonidos.

Por supuesto, en ese ejemplo particular, probablemente sería más fácil simplemente hacer referencia directa a los elementos de las matrices internas. De esta forma, puede imprimir <li>$inner[0], $inner[1]</li> (tenga en cuenta que nunca he usado Ruby, así que no sé cómo se indexan las matrices, y mucho menos la impresión de sintaxis).

3

En vista:

<ul> 
    <% sounds.each do |sound| %> 
    <li> <%=h sound.join ', ' %></li> 
    <% end %> 
</ul> 
Cuestiones relacionadas