Array method to subtract in place
I request a method on array that takes another array, subtract that from self in place (= destructively), and return the subtracted elements:
a = [1, 2, 3, 4, 5] a.some_method([2, 4, 6]) #=> [2, 4] a #=> [1, 3, 5]
Ideally, it should also allow a block:
a = [1, 2, 3, 4, 5] a.some_method(&:even?) #=> [2, 4] a #=> [1, 3, 5]
This operation is quite frequent, but at the moment, it requires several steps to do.
Updated by Eregon (Benoit Daloze) over 7 years ago
The block form can be achieved with Enumerable#partition.
I agree in general splitting an array, according to some property using the order of the elements (no take_drop_while) or to some other array (this request) is more difficult than it could be.