javascript - 循环遍历字符串数组 - 停留在最后一个字符串

标签 javascript arrays

我有这个函数,每 5 秒循环一次字符串列表。我希望它在完成循环后留在最后一根弦上。 我需要在这里更改什么?

window.specialWorkBoxStyleOverride = function(workBox) {
    var statusTextBox = $("<div class = 'status-description-box'></div>");
    $(workBox).append(statusTextBox);
    var statusTexts = ["Checking", "Updating", "Processing", "Saving"];
    var idx = 0;
    var updateStatus = function() {
        statusTextBox.text(statusTexts[idx]);
        idx = (idx + 1) % statusTexts.length;
        setTimeout(updateStatus, 5000);
    };
    updateStatus();
};

非常感谢。

最佳答案

现在你的代码总是调用setTimeout,所以它将永远循环。检查是否已到达列表末尾应该足以阻止这种情况(并且意味着您不再需要模块化算术):

var updateStatus = function() {
    statusTextBox.text(statusTexts[idx]);
    idx++;
    if (idx < statusTexts.length) { 
        setTimeout(updateStatus, 5000);
    }
};

关于javascript - 循环遍历字符串数组 - 停留在最后一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24606199/

相关文章:

javascript - 使用 JavaScript 向 URL 添加参数

javascript - 如何删除此 JavaScript 空错误?

php - 将php数组数据导出到excel

c - 指针语法困惑

javascript - 在 react router v6 中使用导航功能时如何传递数据

javascript - jQuery 的 .live ('click' , fn) 和 .click(fn) 之间的性能差异

java - 将值设置为对象数组

c - 初始化指向 NULL 的指针数组

javascript - 根据结果​​使用 javascript 更改 p 的背景颜色

javascript - 在 Chrome 扩展中的网络应用默认操作之前执行自定义 onClick 操作