循环遍历字符串数组 - 保持最后一个字符串

时间:2014-07-07 08:32:54

标签: 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();
};

非常感谢。

1 个答案:

答案 0 :(得分:2)

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

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