我运行以下代码:
> 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)
我希望结果do
是2, 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)
你可以做到
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)
归档时间: |
|
查看次数: |
13818 次 |
最近记录: |