Как перебирать массив массивов

17

Каков наилучший способ перебора массива массивов?

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

Я хочу выход в HTML ul / li structure:

<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>
    
задан slhck 18.08.2009 в 23:49
источник

3 ответа

37

Предполагая, что все внутренние массивы имеют фиксированный размер, вы можете использовать автоматическую распаковку для получения каждого элемента внутреннего массива в своей собственной переменной при итерации по внешнему массиву. Пример:

sounds.each do |name, link|
  # do something
end
    
ответ дан sepp2k 18.08.2009 в 23:56
источник
  • 2 года с рубином. И это все еще увлекательно. –  arpit 22.03.2016 в 07:21
3

В поле зрения:

<ul>
  <% sounds.each do |sound| %>
    <li> <%=h sound.join ', ' %></li>
  <% end %>
</ul>
    
ответ дан klew 18.08.2009 в 23:54
источник
1

Используйте вложенный цикл. Внешняя повторяется над звуками, а внутренняя - итератором по текущему элементу из звуков.

Конечно, в этом конкретном примере было бы, наверное, проще всего напрямую ссылаться на элементы внутренних массивов. Таким образом, вы можете просто напечатать <li>$inner[0], $inner[1]</li> (обратите внимание, что я никогда не использовал Ruby, поэтому я не знаю, как массивы индексируются, не говоря уже о синтаксисе печати).

    
ответ дан Cinder6 18.08.2009 в 23:52
источник