javascript - 循环遍历 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>
推荐阅读
- html - Connecting to multiple REST services using angularjs controllers not linking
- java - Back from confirm credentials to main activity on timeout
- google-bigquery - BigQuery:总叶字段太多 10852
- python - How to groupby, cut, transpose then merge result of one pandas Dataframe using vectorisation
- flutter - firebase auth with flutter
- docker - Secure private docker-registry
- c# - 我希望能够使用基于用户角色的授权,但这是我的问题:
- c - 递归函数中缺少返回语句,仍然有效
- django - django restframework: blank=False and default='x' 创建一个带有 required=False 字段的模型序列化器。如何规避?
- javascript - 如何在angular js中使用ng-model将文本框值发送到控制器