On Fri, 27 Aug 2004 22:57:53 +0900, James Edward Gray II
<james / grayproductions.net> wrote:
> I have and Array and I need to iterate over it, finding a subset of the
> elements it contains.  I want that subset in a new Array and I want the
> original Array altered so it no longer contains the subset.
> 
> The following code does what I want, but it seems kind of "clunky":
> 
> a = [ 1, 2, 3 ]
> b = [ ] # so it exists outside the iterator
> 
> puts a.delete_if { |e| b << e if e > 1; e > 1; }        # prints 1
> puts b  # prints 2 and 3

It's still a bit clunky -- I can't think of a single operation to do
this offhand, but:

b = a.select { |e| e > 1 }
a.delete_if { |e| e > 1 }

-a
-- 
Austin Ziegler * halostatue / gmail.com
               * Alternate: austin / halostatue.ca