0

データベースselectからの配列(@tasks)があり、最初の配列を単独で表示してから、他の配列をループします。

配列には常に1つのアイテムがありますが、複数ある場合とない場合があります。

最初のアイテムを表示してから、残りのアイテムがある場合はそれをループするための最良の方法は何ですか?

先日、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]the_restnil少なくともルビー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 に答える