Creating array

Hi.

Is there a short way of creating array of numbers
with, for example, step of 10, like this:

10,20,30,40,50

By short I mean without going through iteration loop:

array=[]
(1..5).each do |i|
    array.push i*10
end

Thanks
Haris

Hello

By short I mean without going through iteration loop:

array=
(1..5).each do |i|
array.push i*10
end

Would you be pleased with something like this ?

array = (1..5).collect {|i| i*10}

=> [10, 20, 30, 40, 50]

Cheers,

···

--
JJ Fleck
PCSI1 Lycée Kléber

Haris Bogdanovi� wrote:

Hi.

Is there a short way of creating array of numbers
with, for example, step of 10, like this:

10,20,30,40,50

By short I mean without going through iteration loop:

array=
(1..5).each do |i|
    array.push i*10
end

Thanks
Haris

Take a look at Array.new[1]:

irb(main):001:0> Array.new(5){|i| i * 10}
=> [0, 10, 20, 30, 40]

With a little bit of math you should be able to get your desired result.

Marvin

[1]: http://www.ruby-doc.org/ruby-1.9/classes/Array.html#M000684

···

--
Posted via http://www.ruby-forum.com/\.

(1..5).map do |i|
   i*10
end

This still has an explicit loop (or at least as explicit a loop as yours does), but is somewhat more concise.

On 1.8.7+ you can also do 10.step(50,10).to_a.

HTH,
Sebastian

···

On 28.12.2009 12:25, Haris Bogdanoviæ wrote:

Is there a short way of creating array of numbers
with, for example, step of 10, like this:

10,20,30,40,50

By short I mean without going through iteration loop:

array=
(1..5).each do|i|
     array.push i*10
end

Hi --

Hi.

Is there a short way of creating array of numbers
with, for example, step of 10, like this:

10,20,30,40,50

By short I mean without going through iteration loop:

array=
(1..5).each do |i|
   array.push i*10
end

In 1.8.6 you can do:

   array = (1..5).map {|i| i * 10 }

and in 1.9 you can do:

   10.step(50,10).to_a

I can never keep track of which side of the fence 1.8.7 falls on, but
you can try both.

David

···

On Mon, 28 Dec 2009, Haris Bogdanovi? wrote:

--
David A. Black
Senior Developer, Cyrus Innovation Inc.
THE COMPLEAT RUBYIST, Ruby training with Black/Brown/McAnally!
January 22-23, Tampa, Florida
Info and registration at http://www.thecompleatrubyist.com

=> [0, 10, 20, 30, 40]

···

On Mon, Dec 28, 2009 at 12:25 PM, Haris Bogdanović <fbogdanovi@xnet.hr> wrote:

Is there a short way of creating array of numbers
with, for example, step of 10, like this:

tens = Array.new(5) { |i| i*10 }

Haris Bogdanovi� wrote:

Hi.

Is there a short way of creating array of numbers
with, for example, step of 10, like this:

10,20,30,40,50

(10..50).step(10).to_a

···

--
Posted via http://www.ruby-forum.com/\.

Hi --

Hi.

Is there a short way of creating array of numbers
with, for example, step of 10, like this:

10,20,30,40,50

By short I mean without going through iteration loop:

array=
(1..5).each do |i|
array.push i*10
end

In 1.8.6 you can do:

array = (1..5).map {|i| i * 10 }

and in 1.9 you can do:

10.step(50,10).to_a

In fact, the #to_a might be completely superfluous depending on that
the OP wants to do with this.

I can never keep track of which side of the fence 1.8.7 falls on, but
you can try both.

:slight_smile:

Kind regards

robert

···

2009/12/28 David A. Black <dblack@rubypal.com>:

On Mon, 28 Dec 2009, Haris Bogdanovi? wrote:

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

David A. Black wrote:

Hi --

> Hi.
>
> Is there a short way of creating array of numbers
> with, for example, step of 10, like this:
>
> 10,20,30,40,50
>
> By short I mean without going through iteration loop:
>
> array=
> (1..5).each do |i|
> array.push i*10
> end

In 1.8.6 you can do:

   array = (1..5).map {|i| i * 10 }

and in 1.9 you can do:

   10.step(50,10).to_a

I can never keep track of which side of the fence 1.8.7 falls on, but
you can try both.

David

irb(main):001:0> 10.step(50,10).to_a
=> [10, 20, 30, 40, 50]
irb(main):002:0> RUBY_VERSION
=> "1.8.7"

···

On Mon, 28 Dec 2009, Haris Bogdanovi? wrote:

--