如何在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
考虑到第一个数组元素为空“”,可能需要一些修改