我正在尝试概念化两个循环的迭代
numbers_array = [1,2,3,4,5,6,7,8,9,10]
add_to_array = [1,2,3,4]
numbers_array
进行迭代时,add_to_array
进行迭代,同时将两个元素同时添加在一起。注意事项是add_to_array
到达结尾时,它将重新开始将其元素添加到numbers_array
中的下一个索引中。因此,在numbers_array[4]
,我们将添加add_to_array[0]
,然后将numbers_array[5]
添加到add_to_array[1]
,依此类推。重复此过程,直到我们到达numbers_array
的结尾为止。
任何输入将不胜感激!
答案 0 :(得分:8)
您正在寻找Enumerable#zip
和Enumerable#cycle
:
Object
现在对返回的数组进行任何操作。例如。要减少压缩结果求和元素,请映射ro Enumerable#sum
:
numbers_array = [1,2,3,4,5,6,7,8,9,10]
#⇒ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
add_to_array = [1,2,3,4]
#⇒ [1, 2, 3, 4]
numbers_array.zip(add_to_array.cycle)
#⇒ [[1, 1], [2, 2], [3, 3], [4, 4], [5, 1],
# [6, 2], [7, 3], [8, 4], [9, 1], [10, 2]]
答案 1 :(得分:0)
它通过使用UseCors
运算符来循环遍历索引。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// Enable Cors
app.UseCors("MyPolicy");
...
...
...
}
如果您不想从下一个数组重新开始,则类似的一种很酷的方法将是%
答案 2 :(得分:0)
add_to_array.zip(*numbers_array.each_slice(add_to_array.size)).
map { |a| a.sum { |e| e.to_i } }
#=> [16, 20, 13, 16]
需要 e.to_i
才能将nil
的值转换为零。参见NilClass#to_i。
答案 3 :(得分:0)
另一个选择:
ContentPresenter
缺点:add_to_array被numbers_array.map { |e| e + add_to_array.rotate!.last }
# => [2, 4, 6, 8, 6, 8, 10, 12, 10, 12]
突变