From: Robert Klemme Date: 2013-02-15T22:37:47+09:00 Subject: Re: skip iteration in each loop On Fri, Feb 15, 2013 at 1:17 PM, botp wrote: > On Fri, Feb 15, 2013 at 4:11 PM, Saurav Chakraborty > wrote: >> >> I want to skip iteration for few values depending on dynamic condition. >> >> Say I have a persons array [1,2,3,4,5,6,7,8] and while iterating if the >> one of the values equals 2, then it should skip iteration for the next >> two values (in this case it is 3 and 4) >> >> In this case the output should be: [1,2,5,6,7,8] Another approach: irb(main):001:0> persons = [1,2,3,4,5,6,7,8] => [1, 2, 3, 4, 5, 6, 7, 8] irb(main):011:0> show = -1 => -1 irb(main):012:0> persons.each_with_index {|x, i| show = i + 2 if x == 2; puts x if i > show} 1 5 6 7 8 => [1, 2, 3, 4, 5, 6, 7, 8] or irb(main):013:0> persons.inject(0) {|miss, x| if x == 2 then 2 else puts x if miss <= 0; miss - 1 end} 1 5 6 7 8 => -4 Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/