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

漂亮又简单。希望我已经正确理解了你的问题。