使用以下示例:
array = [1,20]
new_array = []
i = array[0]
while i < array[1]
new_array.push(i)
i+= 2
end
#new_array = [1,3,5,7,9,11,13,15,17,19]
是否有一种更优雅的方式编写此循环,而无需编写空数组(new_array
)和外部变量循环计数器(i
)?我一直在想一些事情,new_array.map{|x| }
但是并没有遍历每个元素,而是不断增加一个数字,直到达到某个极限。
假设您的目标是创建一个最大为奇数的数组,则可以将范围与步长配合使用。
limit = 20
array = (1..limit).step(2).to_a
编辑
如果您希望既能下降又能上升,可以使用step
。
#Ascending
start = 1
limit = 20
array = start.step(limit, 2).to_a
#Descending
start = 20
limit = 1
array = start.step(limit, -2).to_a
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句