如何遍历可枚举的第一个元素

Ste*_*fan 12 ruby

我运行以下代码:

> a = [1,2,3].collect
 => #<Enumerator: [1, 2, 3]:collect> 
> b = a.next
 => 1 
> a.each do |x| puts x end
1
2
3
=> [nil, nil, nil] 
Run Code Online (Sandbox Code Playgroud)

我希望结果do2, 3因为我已经阅读了第一个元素a.我如何实现2, 3优雅的结果?

编辑:

为了澄清,我不想跳过第一个条目,我只是想以不同的方式处理它.所以我想要两个b和循环.

Ser*_*sev 38

这个怎么样?

[1,2,3].drop(1).each {|x| puts x }
# >> 2
# >> 3
Run Code Online (Sandbox Code Playgroud)

以下是继续使用迭代器的方法

a = [1,2,3]

b = a.each # => #<Enumerator: [1, 2, 3]:each>
b.next # skip first one

loop do
  c = b.next
  puts c
end
# >> 2
# >> 3
Run Code Online (Sandbox Code Playgroud)


Ana*_*hah 5

你可以做到

a.drop(1).each do |x| puts x end
Run Code Online (Sandbox Code Playgroud)

编辑:

使用该map方法

b = [1,2,3].drop(1).map{|x| x}
=> b will be [2, 3]
Run Code Online (Sandbox Code Playgroud)