[英]Ruby each do loop 'n' number of times
嗨,我在.erb視圖中遇到以下循環問題
<% my_list.each do | list | %>
.. loop stuff.....
<% end %.
這對於循環瀏覽我的列表很好,但是我只想循環瀏覽“ my_list”中的前4個項目,而不是整個列表。 我嘗試了一些類似的事情:
<% my_list.each do | product | 3.times %>
但似乎沒有用,因為我認為我的紅寶石知識至少可以說是!
像這樣使用Array#take :
<% my_list.take(4).each do | product | %>
從my_list
Array#first中獲取前4個元素:
<% my_list.first(4).each do | product | %>
使用Array#each_slice切片數組
<% my_list.each_slice(4) do | products | %>
<% products.each do | product | %>
顯然,您希望以四個為一組的順序遍歷列表(您確實應該修改問題,因為這是重要的信息)。 很明顯,您正在使用Rails。 幸運的是,Rails的in_groups_of
已內置到ActiveSupport中:
<% my_list.in_groups_of(4) do |products| %>
<% products.each do | product | %>
這種方法的優勢(相對於諸如each_slice
替代方法)是in_groups_of
將填充末尾以確保您始終獲得四個組。 默認情況下,它將填充為nil
,但是您可以自己指定填充:
<% my_list.in_groups_of(4, " ") do |products| %>
如果將false
用作填充,它將完全不填充,其行為類似於each_slice
。
<% my_list[0..3].each do | list | %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.