【发布时间】:2014-10-28 06:26:32
【问题描述】:
我希望能够获取一个匿名数组,遍历它并在迭代器块内部找出当前元素的索引。
例如,我试图只输出每三个元素。
["foo", "bar", "baz", "bang", "bamph", "foobar", "Hello, Sailor!"].each do |elem|
if index_of(elem) % 3 == 0 then
puts elem
end
end
(其中index_of 是一个不存在的方法,在这里用作占位符来演示我正在尝试做的事情)
理论上输出应该是:
foo
bang
Hello, Sailor!
当我命名数组时,这非常简单。但是当它是匿名的时,我不能很好地按名称引用数组。我尝试过使用self.find_index(elem) 和self.index(elem),但都失败并出现错误:NoMethodError: undefined method '(find_)index' for main:Object
这样做的正确方法是什么?
【问题讨论】:
-
只使用索引,
a = [ "a", "b", "c" ] a.index("b")返回1 -
这当然是真的,但是我的问题是询问如何在 anonymous 数组的上下文中执行此操作。我不能说
a.index(...)因为没有变量a数组绑定到。
标签: ruby arrays indexing iteration