加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – each_with_index_do从1开始为索引

发布时间:2020-12-16 22:06:06 所属栏目:百科 来源:网络整理
导读:我在rails应用程序的视图中使用 ruby迭代器,如下所示: % (1..@document.data.length).each_with_index do |element,index| % ...% end % 我以为加了1 ..而不是说: @ document.data 将获得上述索引开始于1的技巧.但是,上面的代码索引仍然是0到data.length(-
我在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读