Javascript 具有setInterval的循环数组不工作
问题是,现在,循环只显示数组的最后一个值,即“o” const h2=document.querySelector'h2'; const title=document.querySelector'h1'; 常量词=['h','e','l','l','o']; 函数环{ forlet i=0;iJavascript 具有setInterval的循环数组不工作,javascript,arrays,loops,setinterval,Javascript,Arrays,Loops,Setinterval,问题是,现在,循环只显示数组的最后一个值,即“o” const h2=document.querySelector'h2'; const title=document.querySelector'h1'; 常量词=['h','e','l','l','o']; 函数环{ forlet i=0;i{ 控制台.日志字[i]; title.textContent=单词[i]; }, 1000 } } 环 这是因为你在循环中做间隔,这意味着当你到达1s时,i已经在数组i=4的末尾了 我想这就是你想要的
这是因为你在循环中做间隔,这意味着当你到达1s时,i已经在数组i=4的末尾了 我想这就是你想要的
let i = 0;
let interval;
const loop = () => {
console.log(word[i]);
if (word[i]) title.textContent += word[i];
else clearInterval(interval)
i ++;
}
interval = window.setInterval(loop, 1000);
希望这有帮助这是因为你在循环中做间隔,这意味着当你到达1时,i已经在数组i=4的末尾了 我想这就是你想要的
let i = 0;
let interval;
const loop = () => {
console.log(word[i]);
if (word[i]) title.textContent += word[i];
else clearInterval(interval)
i ++;
}
interval = window.setInterval(loop, 1000);
希望这对您有所帮助如果您想在1秒后更改数组中所有单词的标题,您可以从索引0开始,继续使用setInterval,直到您的索引小于word.length 比如:
const h2 = document.querySelector('h2');
const title = document.querySelector('h1');
const word = ['h', 'e', 'l', 'l', 'o'];
loop(0);
function loop(index) {
setTimeout(() => {
if (index < word.length) {
title.textContent = word[index];
setTimeout(() => loop(index+ 1), 1000);
} else {
setTimeout(() => loop(0), 1000);
}
}, 1000)
}
这里我设置第一个元素,并为下一个元素设置超时
如果索引超过了字长,我也会用else重置单词循环。如果你想在1秒后更改数组中所有单词的标题,你可以从索引0开始,并保持setInterval直到你的索引小于word.length 比如:
const h2 = document.querySelector('h2');
const title = document.querySelector('h1');
const word = ['h', 'e', 'l', 'l', 'o'];
loop(0);
function loop(index) {
setTimeout(() => {
if (index < word.length) {
title.textContent = word[index];
setTimeout(() => loop(index+ 1), 1000);
} else {
setTimeout(() => loop(0), 1000);
}
}, 1000)
}
这里我设置第一个元素,并为下一个元素设置超时
如果索引超过了单词长度,我也会用else来重置单词循环。以下是我的理解。这个程序应该每隔一秒钟附加hello 这个代码对我有用 html js 演示:
这是我的理解。这个程序应该每隔一秒钟附加hello 这个代码对我有用 html js 演示:
对于一小部分时间间隔,我建议改用setTimeout,并为它们指定适当的超时时间,并在想要添加到元素innerHTML的字符上加上闭包 函数循环字、目标{ 对于let i=0;i
对于一小部分时间间隔,我建议改用setTimeout,并为它们指定适当的超时时间,并在想要添加到元素innerHTML的字符上加上闭包 函数循环字、目标{ 对于let i=0;i
你应该读一读javascript中的闭包,我想他是想每秒钟改变一次标题,在这个数组中循环。这是我的工作。。title.textContent+=单词[i];演示:你应该读一下javascript中的闭包。我想他是想每秒钟更改一次标题,在这个数组中循环。这是我的工作。。title.textContent+=单词[i];演示: