我有一个变量@ Variable = [],它在索引的每次迭代中都充满了拉姆登值,就像这样:
def whetever(array)
array.each_index {|i|
@variable=magic_ramdon_string_of_numbers_diferent_on_every_iteration
}
end
我想创建另一个数组,汇总@variable每次迭代的值
@variable值的示例:
i=0 @variable=[56,78,34,84]
i=1 @variable=[24,57,14,78]
i=2 @variable=[54,74,52,45]
这是我想要的:
sum_variable=[56,78,34,84,24,57,14,78,54,74,52,45]
答案 0 :(得分:0)
我可以这样做:首先将sum_variable
定义为一个空数组,然后在循环的每次迭代中将求和值附加到其中:
def whatever(array)
sum_variable = []
array.each_index do |i|
@variable = magic_ramdon_string_of_numbers_diferent_on_every_iteration
sum_variable << @variable.inject(:+)
end
end
请注意,如果这是一个Rails应用程序,而不仅仅是香草红宝石,那么ActiveSupport
还提供了方法Array#sum
,您可以使用该方法代替.inject(:+)
。
答案 1 :(得分:0)
我会这样写:
def whetever(array)
sum_variable = (0...array.size).flat_map do |i|
magic_ramdon_string_of_numbers_diferent_on_every_iteration
end
end
flat_map
调用序列中每个元素的块以获取数组,
并返回所有串联在一起的结果数组。在这里,顺序
是范围0...array.size
,它是数组索引,如果我们只是想
元素本身,例如array[i]
,我们可以只使用array.flat_map
,
代替。