Kay*_*ayo 1 javascript arrays loops
这是我之前提出的类似问题(在数组中向前和向后选择X量,如果需要,循环到开始和结束)
但我无法将答案适应我想要解决的另一个问题.
给定一个任意数组和一个当前索引
[a, b, c, d, e, f, g, h, i, j, k]
Run Code Online (Sandbox Code Playgroud)
让我们说现在的指数是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;
}
Run Code Online (Sandbox Code Playgroud)
看,你不需要for循环或任何东西.你只需要用它的符号添加你的号码并取模数.
function crawlArray(array, index, n) {
return ((index + n) % array.length + array.length) % array.length;
}
Run Code Online (Sandbox Code Playgroud)
就是这样.应该使用n的正值或负值.
| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |