On Fri, Feb 15, 2013 at 1:17 PM, botp <[email protected]> wrote:
> On Fri, Feb 15, 2013 at 4:11 PM, Saurav Chakraborty <[email protected]>
> 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/

-- 
[email protected] | 
https://groups.google.com/d/forum/ruby-talk-google?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"ruby-talk-google" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to