我在rails应用程序的视图中使用
ruby迭代器,如下所示:
<% (1..@document.data.length).each_with_index do |element,index| %> ... <% end %>
我以为加了1 ..而不是说:
@ document.data
将获得上述索引开始于1的技巧.但是,上面的代码索引仍然是0到data.length(-1).那么我做错了什么,我需要索引等于1-data.length …没有线索如何设置迭代器来做到这一点.
解决方法
我想也许你误会every_with_index.
每个都将迭代数组中的元素
[:a,:b,:c].each do |object| puts object end
输出;
:a :b :c
each_with_index遍历元素,并在索引中传递(从零开始)
[:a,:c].each_with_index do |object,index| puts "#{object} at index #{index}" end
:a at index 0 :b at index 1 :c at index 2
如果你想要1索引,那么只需添加1.
[:a,index| indexplusone = index + 1 puts "#{object} at index #{indexplusone}" end
:a at index 1 :b at index 2 :c at index 3
如果要迭代数组的子集,那么只需选择子集,然后对其进行迭代
without_first_element = array[1..-1] without_first_element.each do |object| ... end