循环不断来回

时间:2018-02-02 15:21:58

标签: javascript

我正在尝试一个在数组中来回传递的无限循环,我所拥有的函数前进,我想让它在i = array.length时向后移动。 这是我的代码:

    var myArray = ["banana", "apple", "peer", "grape"]

    var i = 0;
    
    (function loop() {
        console.log(myArray[i])
        if(i++ < myArray.length-1){
            setTimeout(loop, 1000);
        }
    })();

我错过了落后的部分,因为我尝试的不起作用,

真的很感激任何帮助

3 个答案:

答案 0 :(得分:0)

这可能是您正在寻找的东西。我没有运行任何东西,所以可能会有一些错误,但它应该给你一个你想要的目标。

const myArray = ["banana", "apple", "peer", "grape"];
let index = 0;
let direction = 0;
const maxLoops = 50;
let loopCount = 0;

while (loopCount < maxLoops) {
    console.log(myArray[index]);
    if (direction === 0) {
        index++;
    } else {
        index--;
    }


    if (direction === 0 && index >= myArray.length - 1) {
        direction = 1;
    } else if (direction === 1 && index <= 0) {
        direction = 0;
    }

    loopCount++;
}

答案 1 :(得分:0)

这是在数组达到长度时反转数组的一种方法:

&#13;
&#13;
var myArray = ["banana", "apple", "pear", "grape"];
var i = 0;
(function loop() {
  if (i < (myArray.length - 1)) {
    console.log(myArray[i]);
    i++;
  } else {
    myArray.reverse();
    i = 0;
    console.log(myArray[i]);
    i = 1;
  }
  setTimeout(loop, 1000);
})();
&#13;
&#13;
&#13;

答案 2 :(得分:0)

这是另一种向下计数的方式,等等。

var i = 0;
var maxIndex = 9;
var dir = 1;

while(true)
{
    if (i == maxIndex*dir) dir = !dir;

    doSomething(i);

    i += (dir<<1)-1;
}