ruby – 跳过Enumerable#each_cons中的’n’次迭代

是否可以在执行每个块时跳过n次迭代?

persons.each_cons(2) do |person|
  if person[0] == person[1]
    #SKIP 2 iterations
  end

  puts "Howdy? #{person[0]}"
end

最佳答案 你不能直接这样做.

您可能想要在阵列上调用uniq,或者如果订单很重要,请查看新的chunk方法:

[1,1,1,2,1,3].uniq # => [1,2,3]
[1,1,1,2,1,3].chunk{|e| e}.map(&:first) # => [1,2,1,3]
# i.e. two adjacent items will always be different
点赞