steve_gallagher
steve_gallagher

Reputation: 3898

Getting a descending range sequence in Ruby

So this works ascendingly

(1..5).to_a => [1, 2, 3, 4, 5]

But this doesn't

(5..1).to_a => []

I'm trying to get a descending sequence from an arbitrary ceiling. Thanks.

Upvotes: 8

Views: 2382

Answers (2)

Tomasz Weissbek
Tomasz Weissbek

Reputation: 153

Or you can try this: (1..5).to_a.reverse # => [5, 4, 3, 2, 1]

Upvotes: 7

Sergio Tulentsev
Sergio Tulentsev

Reputation: 230326

Try this:

5.downto(1).to_a # => [5, 4, 3, 2, 1]

Of course, there's a corresponding #upto. If you want steps, you can do this:

1.step(10, 2).to_a # => [1, 3, 5, 7, 9]
10.step(1, -2).to_a # => [10, 8, 6, 4, 2]

Upvotes: 20

Related Questions