Project

General

Profile

Actions

Feature #10729

open

Array method to subtract in place

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

Status:
Open
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.

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

Actions

Also available in: Atom PDF

Like0
Like0