JavaScript数组以圆圈重新排序

时间:2014-06-17 14:30:05

标签: javascript arrays setinterval

我的javascript数组看起来像这样

var myArr = [1,2,3,4,5,6,7,8,9];

我每秒都有一个setInterval函数。每次触发函数时,我需要重新排序数组,看起来像这样[2,3,4,5,6,7,8,9,1],然后下一次[3,4,5,6,7,8] ,9,1,2] ......这是最好的方法。

1 个答案:

答案 0 :(得分:9)

非常简单:使用shiftpush的组合:

var myArr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(myArr.join());

var myInterval = setInterval(
    function (){
        myArr.push(myArr.shift());
        console.log(myArr.join());
    },
    1000
);

setInterval()每x毫秒运行一次提供的函数(在这种情况下为1000),
shift()从被调用的数组中删除第一个元素,然后返回它,
push()将提供的参数添加到调用它的数组的末尾。


您可以使用unshiftpop反转方向:

var myArr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(myArr.join());

var myInterval = setInterval(
    function (){
        myArr.unshift(myArr.pop());
        console.log(myArr.join());
    },
    1000
);