JavaScript 数组的循环数
Cycle numbers of array with JavaScript
我正在尝试使用 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);
要循环,您只需要一个索引,该索引将在到达数组长度末尾时重置。您可以使用模运算符来实现此目的。
function cycle() {
let index = 0;
let arr = [0,1,2,3];
return function() {
console.log(arr[index++ % (arr.length)]);
}
}
setInterval(cycle(), 500);
请检查以下代码,刚刚修复了您的代码,
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);
这里是你如何通过元素向后循环...
var outArr = [0, 1, 2, 3];
for (i = outArr.length; i!=-1; i--){
console.log(outArr[i]);
}
如果我正确理解你的问题,我相信这会有所帮助
为了清楚起见,我添加了评论。
//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
漂亮又简单。希望我已经正确理解了你的问题。
我正在尝试使用 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);
要循环,您只需要一个索引,该索引将在到达数组长度末尾时重置。您可以使用模运算符来实现此目的。
function cycle() {
let index = 0;
let arr = [0,1,2,3];
return function() {
console.log(arr[index++ % (arr.length)]);
}
}
setInterval(cycle(), 500);
请检查以下代码,刚刚修复了您的代码,
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);
这里是你如何通过元素向后循环...
var outArr = [0, 1, 2, 3];
for (i = outArr.length; i!=-1; i--){
console.log(outArr[i]);
}
如果我正确理解你的问题,我相信这会有所帮助 为了清楚起见,我添加了评论。
//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
漂亮又简单。希望我已经正确理解了你的问题。