如何解决循环遍历JS数组,然后永久终止于单个值
我正在尝试在网站上的DIV中打印不同的句子。 我通过遍历数组(wordCycle)来做到这一点。 遍历数组后,我希望永久显示 Umdenken。。 但是相反,它循环遍历数组,然后输出 Umdenken。,然后永久显示 undefined 。
这是我的代码:
var wordCycle = [
'Panierte Schuhsohlen','Essbare Sitzbezüge','Häuser wie Bäume','Städte wie Wälder','Ein neues Bio','Masken als Nährstoffe'
];
textSequence(0);
function textSequence(i) {
if (wordCycle.length > i) {
setInterval(function () {
document.getElementById("sequence").innerHTML = wordCycle[i];
textSequence(++i);
},5500); // in milliseconds (1000 = 1 second)
}
else if (wordCycle.length == i) {
document.getElementById("sequence").innerHTML = 'Umdenken.';
}
}
解决方法
使用setTimeout
安排单个递归调用,而不是setInterval
:
var wordCycle = [
'Panierte Schuhsohlen','Essbare Sitzbezüge','Häuser wie Bäume','Städte wie Wälder','Ein neues Bio','Masken als Nährstoffe'
];
textSequence(0);
function textSequence(i) {
if (wordCycle.length > i) {
setTimeout(function () {
document.getElementById("sequence").innerHTML = wordCycle[i];
textSequence(++i);
},500); // in milliseconds (1000 = 1 second)
}
else if (wordCycle.length == i) {
document.getElementById("sequence").innerHTML = 'Umdenken.';
}
}
<div id="sequence"></div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。