From: benjohn@... Date: 2007-07-13T21:53:05+09:00 Subject: Re: Loop over an array that changes the elements > Hi, > > I have a rather simple question. I have an array and want to change the > elements of the array in a loop. For example in Java, you would write: > > int[] numbers = {1, 2, 3} > > for(int i = 0; i < numbers.length; i++) > { > numbers[i] = numbers[i] * 2 > } > > > In Ruby the common way to loop over an array is Array#each > > But > > numbers = [1, 2, 3] > > numbers.each do |num| > num = num * 2 > end > > would not change the array itself. > > Of course, you can write something like > > for i in 0 .. numbers.length-1 do > numbers[i] = numbers * 2 > end > > But this in my eyes is not really the Ruby way. Is there a standard way > of doing this? numbers = numbers.map {|number| numer * 2} Cheers, B