From: Alder Green Date: 2006-05-26T09:05:23+09:00 Subject: Re: Array#delete_if! - a method to delete and return all array items for which the block evaluates to true. On 5/26/06, Daniel Sheppard wrote: > > Thanks. I didn't know about #partition. > > > > Still, if anyone can suggest an improved pure-ruby solution, I'd be > > interested for educational reasons. > > > class Array > def delete_if! > to_delete = [] > delete_if do |item| > to_delete << item if yield item > end > to_delete > end > end > > irb(main):010:0> arr = [1,2,3,4,5,6] > => [1, 2, 3, 4, 5, 6] > irb(main):011:0> arr.delete_if! {|x| x > 3} > => [4, 5, 6] > irb(main):012:0> arr > => [1, 2, 3] > Yup, good one. Thanks. -- -Alder