【发布时间】:2014-08-12 00:33:42
【问题描述】:
在顺序数值数组上循环时,很容易获得当前循环迭代的计数。
(1..5)each do |num|
@output[num] = num
end
但是如果我需要循环一个对象集合(不是顺序数字集合),我如何获得循环的增量值?
@objects.each do |obj|
@output[obj] = obj.name
end
显然,索引是无效的。什么是 ruby 方法来做这里明确的意图(获得一个与循环周期计数相对应的显式数字整数?
【问题讨论】:
-
each_with_index 是否符合您的要求? apidock.com/ruby/Enumerable/each_with_index
-
是的!请回答,我会接受
-
你想要
@objects.each { |obj| @output << obj.name }吗?那么@output[i]等于@object[i].name。这也可以写成@object = @objects.map { |obj| obj.name }。无论如何,您不需要索引。 -
如果没有其他人这样做,我明天会向你们的 cmets 致辞。请注意,我没有收到您离开 cmets 的通知,因为您没有包含我的 SO @username。我看到他们只是偶然。
-
您的两个问题的答案都是“是”。
标签: ruby arrays loops collections