这个问题与我之前提出的问题类似(在数组中选择向前和向后X个元素,如果需要则循环到开头和结尾)。
但是我正在尝试解决另一个不同的问题时遇到了困难。
给定一个任意的数组和一个当前的索引
[a, b, c, d, e, f, g, h, i, j, k]
假设当前索引为0 (a)
现在我需要找到一个新的索引,给定一个偏移量n(假设是30,也可以是负数以倒序循环)。这样它就会遍历数组,并在到达末尾时从开头继续循环(或者在反向循环时从结尾继续循环),然后返回新的数组索引。
我已经成功地修改了一个与此类似的问题的答案来向前遍历数组,但当我尝试将其更改为向后遍历时它就不起作用了。
function crawlArrayForwards(array, index, n){
var finalIndex;
for (var i = index, len = array.length; i <= index + n; i++) {
finalIndex = (i + len) % len;
}
return finalIndex;
}
n
会使结果保持为负数。我稍微修改了函数以处理任何可能的情况。 - Aioros