我有一个来自数据库选择的数组 ( @tasks
),我想单独显示第一个数组,然后循环遍历任何其他数组。
数组中总会有一项,但可能有也可能不超过一项。
显示第一个项目然后遍历任何剩余项目(如果还有更多项目)的最佳方式是什么?
我以为我前几天在 SO 上发现了类似的东西,但我似乎再也找不到了。
谢谢
我有一个来自数据库选择的数组 ( @tasks
),我想单独显示第一个数组,然后循环遍历任何其他数组。
数组中总会有一项,但可能有也可能不超过一项。
显示第一个项目然后遍历任何剩余项目(如果还有更多项目)的最佳方式是什么?
我以为我前几天在 SO 上发现了类似的东西,但我似乎再也找不到了。
谢谢
1.9.3-p327 > a = [1,2,3]
=> [1, 2, 3]
1.9.3-p327 > first, *the_rest = *a
=> [1, 2, 3]
1.9.3-p327 > first
=> 1
1.9.3-p327 > the_rest
=> [2, 3]
但是,在上述情况下,如果a = [1]
thenthe_rest
最终会是nil
(至少在 ruby 1.9 中,不知道 1.8 左右)
您还可以.shift
像这样删除第一个元素:
1.9.3-p327 > first = a.shift
=> 1
1.9.3-p327 > first
=> 1
1.9.3-p327 > a
=> [2, 3]
1.9.3-p327 >
这很简单。你可以使用这个:
first = @tasks.first
其他:
others = @tasks[1..@tasks.length]
视图显示:
<%= @tasks.first %>
<% @tasks[1..@tasks.length].each do |task| %>
...
<% end %>