【发布时间】:2019-11-14 03:51:40
【问题描述】:
假设我有一个这样的数组:
let arr = [1,2,3....36,38,39]; //an array of 39 elements
标题中的'looped'是指向前遍历数组时,迭代从arr[39]跳转到arr[0],同样从arr[0]跳转到arr[39]也是如此——在本质上,数组是一个闭环。
在我的代码中,我交替迭代迭代的方向,并且每个此类步进的开始和结束索引都是预先确定的:
arr[0] //initial condition is always the same
arr[5]
arr[17]
arr[30]
arr[14]
etc.
我的问题是这样的——考虑到 arr[39] 和 arr[0] 之间的差距,是否有一种简单的方法可以确定哪种迭代方式“更短”?
也就是说,当迭代在 arr[35] 并且下一条指令是转到 arr[2] 时,它更接近通过“间隙”采取 6 步,而不是向后走 33 步。
【问题讨论】:
-
是的,简单的模数运算
-
您是否想弄清楚“通过间隙”与不“通过间隙”是否更快无论前进/后退 ?或者试图弄清楚向前与向后是否更快?
-
@TylerRoper 很抱歉,如果不清楚。考虑数组是一个圆圈,第一个和最后一个索引是邻居。向前/向后方向(i++ vs i--)必须通过哪种方式更快地从一个索引到达另一个索引来确定(也就是说 - 从 37 到 2 是更快地向前和通过间隙,但从 20 到7 是向后更快而不是通过间隙)
标签: javascript arrays