3

I there a smarter way to define an array like this in Ruby?

array = [5, 15, 25, 35, 45, 55, 65, 75]

Thanks for any help.

4 Answers 4

7
5.step(75, 10).to_a #=> [5, 15, 25, 35, 45, 55, 65, 75]
Sign up to request clarification or add additional context in comments.

1 Comment

You,, Ohh!!No.. every one in SO should :)
6

Use Range#step:

Range.new(5, 75).step(10).to_a
# => [5, 15, 25, 35, 45, 55, 65, 75]

[*Range.new(5, 75).step(10)]
# => [5, 15, 25, 35, 45, 55, 65, 75]

[*(5..75).step(10)]  # (5..75) == Range.new(5, 75)
# => [5, 15, 25, 35, 45, 55, 65, 75]

Comments

4

Not sure if it is nicer, but one way would be:

a = 8.times.map {|i| i*10+5} #=> [5, 15, 25, 35, 45, 55, 65, 75]

The benefit of this method, is that the amount of items in the result (8) is explicit.

Comments

1

Here is one way :

>> Array.new(8) { |i| i*10 + 5 }
=> [5, 15, 25, 35, 45, 55, 65, 75]
>> 

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.