JavaScript 数组以圆圈重新排序

标签 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]...最好的方法是什么。

最佳答案

非常简单:使用 shift 的组合和 push :

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()将提供的参数添加到调用它的数组的末尾。

<小时/>

您可以使用 unshift 反转方向和 pop :

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
);

关于JavaScript 数组以圆圈重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24266482/

相关文章:

javascript - 使用正则表达式替换查询字符串仅返回第一个数组值?

javascript - 分配给变量的函数

javascript - Extjs 即时为表单上的所有字段设置只读

arrays - 如何编写 VBA 用户定义函数以使用 ctrl+shift+enter 从 IF 获取数组参数?

Javascript函数clearInterval不停止动画

javascript - ReferenceError:count_1 未在 Joomla 模块中定义

javascript - 将无响应网站调整为窗口大小的最佳方法?

c++ - 通过复制到函数将指针传递给动态分配的数组会产生意外结果

c - 为什么 scanf 在第一次循环后无法获取输入?

javascript - setInterval 是否因手机设备而异?