Project

General

Profile

Feature #10729

Array method to subtract in place

Added by sawa (Tsuyoshi Sawada) almost 5 years ago. Updated almost 5 years ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:67503]

Description

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.

History

Updated by Eregon (Benoit Daloze) almost 5 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.

Also available in: Atom PDF