如何使用Ruby枚举器获取下n个元素?

时间:2016-04-15 10:44:08

标签: ruby enumerators

我正在尝试使用Ruby枚举器获取下一个n个元素,其中包含:

a = [1, 2, 3, 4, 5, 6]
enum = a.each
enum.next(2) # expecting [1, 2]
enum.next(2) # expecting [3, 4]

#next不支持。还有另一种方法可以做到吗? 或者我应该做什么?

正确的Ruby方法是什么?

2 个答案:

答案 0 :(得分:5)

您可以使用take方法

enum.take(2)

如果你需要两个元素的切片,你可以这样做:

e = enum.each_slice(2)
p e.next
#=> [1, 2]
p e.next
#=> [3, 4]

答案 1 :(得分:1)

a = [1, 2, 3, 4, 5, 6]
enum = a.dup
enum.shift(2) # => [1, 2]
enum.shift(2) # => [3, 4]