在ruby中动态操作数组元素而不使用for循环

时间:2011-12-09 06:15:39

标签: ruby-on-rails ruby arrays ruby-on-rails-3

我在ruby中有一个数组,我想根据特定属性动态更改其元素的值。假设我有一个数组,

array = [123,134,145,515]

我想操纵这些元素,比如将所有元素乘以一个参数,如何在不使用for循环的情况下明确地完成它?

2 个答案:

答案 0 :(得分:2)

你在找这个:

array = [123,134,145,515]
n = <any number>

array1 =array.map{|a| a * n}

array.map!{|a| a * n} #which modify the array object itself

答案 1 :(得分:1)

为此,您可以在ruby中使用类似collect方法的数组。

您可以编写一个方法,只要需要将数组和参数作为参数传递,就可以调用该方法。

例如,您可以编写类似于此的方法;

array = [123,134,145,515]
parameter_value = 2

现在,根据要求,您可以定义如下方法:

  array.collect {|x| x * parameter_value}

在这种情况下,这将返回一个类似于此的数组:

array = [246, 268, 290, 1030]