我有一个10项的数组。我有一个从0到20的循环。 我在每个索引处获取数组的位置,但是当我到达数组的最后位置时,下一次迭代应该从它的5°位置开始。
所以,有些人喜欢:
Array[0]
Array[1]
Array[2]
Array[3]
Array[4]
Array[5]
Array[6]
Array[7]
Array[8]
Array[9]
Array[4] <== reached max array's lenght. restart iteration at 5° position
Array[5]
Array[6]
Array[7]
Array[8]
Array[9]
Array[4] <== reached max array's lenght. restart iteration at 5° position
Array[5]
Array[6]
Array[7]
Array[8]
此刻我有:
for (var i = 0; i < 20; i++) {
value = MyArray[(i % MyArray.length)];
}
但我不知道如何将“重启在5°位置”。 我认为有些事情如下:
i % MyArray.length * "number of time 10 is inside 20"
但我找不到合适的Javascript功能。
答案 0 :(得分:1)
使用一个两个单独的变量:一个作为计数器,另一个作为迭代器:
var j = 0, i = 0;
while(i++ < 20) {
if (j === MyArray.length) {
j = 4;
}
console.log(MyArray[j]);
j++;
}
答案 1 :(得分:0)
使用函数而不是循环:
var len = MyArray.length;
(function doLoopandRestartat5(val){
console.log(MyArray[val]);
if(val<len) { doLoopandRestartat5(++val) }
else { doLoopandRestartat5(4); }
})(0);
或类似的东西..在这里快速打字..