我正在尝试使用JavaScript循环类似于此的数组。 arr0 = [0,1,2,3]我想将数组中的最后一个数字循环到第一个索引,并继续循环遍历数组的数字。我尝试使用时间间隔并移动推入式和弹出式操作,但无法使阵列循环。
outArr0 = [0, 1, 2, 3];
var cou0 = -1;
var int0 = setInterval(function() {
cou0++
var pushThis0 = outArr0[outArr0.length - 1];
outArr0.pop();
outArr0.shift();
outArr0[0] = pushThis0;
console.log(outArr0);
if (cou0 == 6) {
clearInterval(int0)
}
}, 500);
答案 0 :(得分:2)
请检查以下代码,只需修复代码,
outArr0 = [0, 1, 2, 3];
var cou0 = -1;
var int0 = setInterval(function() {
cou0++
console.log(outArr0[0]);
outArr0.push(outArr0.shift());
//
if (cou0 == 6) {
clearInterval(int0)
}
}, 500);
答案 1 :(得分:0)
要循环,您只需要一个索引,如果该索引达到数组长度的末尾,它将重新设置。您可以使用模运算符来实现此目的。
function cycle() {
let index = 0;
let arr = [0,1,2,3];
return function() {
console.log(arr[index++ % (arr.length)]);
}
}
setInterval(cycle(), 500);
答案 2 :(得分:0)
这是您如何向后循环浏览元素...
var outArr = [0, 1, 2, 3];
for (i = outArr.length; i!=-1; i--){
console.log(outArr[i]);
}
答案 3 :(得分:0)
如果我正确理解了您的问题,我相信这会有所帮助 为了清楚起见,我添加了评论。
//define a function to cycle the array
function cycleArray(theArray)
{
//store the last value in the array
var _tmp = theArray[theArray.length-1];
//iterate from last to first element, pulling the element from the prev. index
for(i = theArray.length-1; i > 0; i--)
{
theArray[i] = theArray[i-1];
}
//place the saved last element into the first slot of the array
theArray[0] = _tmp;
}
如何使用该功能:
//define your array
someArray = [0, 1, 2, 3];
alert(someArray.toString());
//cycle the array
cycleArray(someArray);
alert(someArray.toString());
上面的代码产生以下内容:
0,1,2,3
3,0,1,2
又好又简单。希望我已经正确理解了您的问题。