Steve
Steve

Reputation: 464

Is there a method for removing negative values from an array?

If I have something like:

numbers = [2, 88, 0.5, -23.55, 0, -45000]

I would like to return

[2, 88, 0.5, 0]

Upvotes: 0

Views: 826

Answers (2)

Cary Swoveland
Cary Swoveland

Reputation: 110685

You could use the mighty (but oft-overlooked and undervalued) Enumerable#grep:

numbers.grep 0..Float::INFINITY
  #=> [2, 88, 0.5, 0] 

or

numbers.grep 0..1/0.0

Upvotes: 0

Ursus
Ursus

Reputation: 30056

Use select or reject

numbers.select { |number| number >= 0 }

or

numbers.reject(&:negative?)

Upvotes: 3

Related Questions