データベースselectからの配列(@tasks
)があり、最初の配列を単独で表示してから、他の配列をループします。
配列には常に1つのアイテムがありますが、複数ある場合とない場合があります。
最初のアイテムを表示してから、残りのアイテムがある場合はそれをループするための最良の方法は何ですか?
先日、SOで似たようなものを見つけたと思ったのですが、二度と見つからないようです。
ありがとう
データベースselectからの配列(@tasks
)があり、最初の配列を単独で表示してから、他の配列をループします。
配列には常に1つのアイテムがありますが、複数ある場合とない場合があります。
最初のアイテムを表示してから、残りのアイテムがある場合はそれをループするための最良の方法は何ですか?
先日、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]
はthe_rest
(nil
少なくともルビー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 %>