2

使用 Rails 3.2 和 Ruby 1.9。当我们编码@objects.each_with_index do |object, i|时,i通常以0, 1,开头2。等等

假设我们有@objects = [A, B, C, D, E],输出是:

<% @objects.each_with_index do |object, i| %>
  <%= i %> - <%= object %><br>
<% end %>

# output
0 - A
1 - B
2 - C

我想要这个:

# output
2 - A
1 - B
0 - C

这该怎么做?

4

2 回答 2

8

<%= @objects.length - 1 - i %> - <%= object %><br>

这将减去数组长度的索引,给出所需的输出。

您必须始终从长度中减去一个,因为长度为 3 的数组的索引为 0、1、2

于 2013-08-27T12:41:33.597 回答
1

这怎么样?

a = [:a,:b,:c]
a.each.with_index(-a.length+1) {|e,i| print -i,"  ",e,"\n"}

输出:

2  a
1  b
0  c

你的可能是这样的:

<% @objects.each.with_index(-@objects.length+1) do |object, i| %>
  <%= -i %> - <%= object %><br>
<% end %>
于 2013-08-27T12:50:04.600 回答