如何在JavaScript中重新启动forEach()循环

如何在JavaScript中重新启动forEach()循环,javascript,foreach,Javascript,Foreach,我有下面的循环,它遍历每个数组元素的字符并停止 var container = $("#myid") container.shuffleNames(); const names = ["", "john", "rita", "katsigaros", "jonathan", "peepee"]; names.forEach((i, t) => {

我有下面的循环,它遍历每个数组元素的字符并停止

var container = $("#myid")
container.shuffleNames();
const names = ["", "john", "rita", "katsigaros", "jonathan", "peepee"];

names.forEach((i, t) => {
        (function(index, text) {
            setTimeout(function(){
                container.shuffleNames({
                    "text": text
                });
            }, index * 3000);
        })(t, i);
});

当循环结束并无限期地重新开始时,我如何使它从一开始就回退?

您可以使用一个永远运行的间隔,每次只访问
名称中的下一个元素,bu递增存储当前名称索引的变量,并在其超过数组长度时使用
%
将其重置回0:

let index = 0;
setInterval( ( ) => {
  container.shuffleNames({
    "text": names[ index = (index + 1) % names.length ]
  });
}, 3000 );

它几乎完成了任务,唯一的缺陷是,当它重新启动时,它再次访问数组“peepee”的最后一个元素,然后从第一个元素继续。它是
。。。。last=>(重新启动)last->first->second->n
考虑到第一个数组元素为空“”,可能需要一些修改