这与我之前提出的问题类似(在数组中向前和向后选择 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;
}