遍历 JS 数组然后永久地以单个值结束
Looping through JS array then ending on a single value permanently
我正在尝试在网站上的 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>
我正在尝试在网站上的 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>