From: Robert Klemme Date: 2005-09-06T16:48:49+09:00 Subject: Re: [Q] how to do insertion and smooth traversal simultaneously on array SHIGETOMI, Takuhiko wrote: > greetings, guys. > > this is a pseudo-ruby code which shows what i am expecting. > > a = [ 0, 1, 2, 3, 4, 5 ] > a.each_with_index do |x, i| > puts "[#{i}] : #{x}" > if i % 2 == 0 # even index ? > a.insert( i, ':-)' ) > skip 1 # <- this is a pseudo directive to skip the next element > # which has just been inserted now > end > end > puts a.size > > expected output... > > [0] : 0 > [1] : 1 > [2] : 2 > [3] : 3 > [4] : 4 > [5] : 5 > 9 <-- means that 3 smileys have been inserted > > as above, i want to traverse an array with some conditional insertion > to itself. > > do anyone know cool way for that? The easiest is probably to use the index for iterating and adjust it on insertions. The alternative is to remember insertions and apply them after the iteration (probably in reverse order to avoid complicated index calculations). Kind regards robert