0

我有一个来自数据库选择的数组 ( @tasks),我想单独显示第一个数组,然后循环遍历任何其他数组。

数组中总会有一项,但可能有也可能不超过一项。

显示第一个项目然后遍历任何剩余项目(如果还有更多项目)的最佳方式是什么?

我以为我前几天在 SO 上发现了类似的东西,但我似乎再也找不到了。

谢谢

4

2 回答 2

1
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 > 
于 2012-11-16T22:37:51.693 回答
0

这很简单。你可以使用这个:

first = @tasks.first

其他:

others = @tasks[1..@tasks.length]

视图显示:

<%= @tasks.first %>
<% @tasks[1..@tasks.length].each do |task| %>
  ...
<% end %>
于 2012-11-16T22:45:13.247 回答