如何使用javascript逐个显示多个字符串

如何使用javascript逐个显示多个字符串,javascript,html,arrays,string,display,Javascript,Html,Arrays,String,Display,因此,我想制作一个简单的网页,一个接一个地显示数组中的多个文本,我尝试了很多方法设置超时、设置间隔和不工作它只给我最后一个字,就像循环一直旋转,并给我最后的结果那样 <h1 class="name" id="text"></h1> html code <script> var cars = ["Saab", "Volvo", "BMW"]; var i = 0 ; setTimeout(function loop(){ do { document.getEl

因此,我想制作一个简单的网页,一个接一个地显示数组中的多个文本,我尝试了很多方法设置超时、设置间隔和不工作它只给我最后一个字,就像循环一直旋转,并给我最后的结果那样

<h1 class="name" id="text"></h1> html code
<script>
var cars = ["Saab", "Volvo", "BMW"];
var i  = 0 ;
setTimeout(function loop(){
do {
document.getElementById("text").innerHTML = cars[i];
i++;
}
while (i < cars.length);  
},4000)
</script>
html代码
var汽车=[“萨博”、“沃尔沃”、“宝马”];
var i=0;
setTimeout(函数循环(){
做{
document.getElementById(“text”).innerHTML=cars[i];
i++;
}
而(i
迭代数组,并在
forEach
回调中使用setTimeout。在这种情况下,不需要
do
&
while
循环。由于您希望以延迟的方式一次显示一次,因此需要更改计时值。可以通过将索引乘以常数时间来实现

var cars=[“萨博”、“沃尔沃”、“宝马”];
常量元素=document.getElementById(“文本”);
汽车价格((项目、指数)=>{
设置超时(()=>{
element.innerHTML=项目;
},索引*1000)
})

如果将innerHTML与=一起使用,则会替换新值

因此,“text”元素的innerHTML将更改为Saab->Volvo->BMW

这是最后一句话。对吧?

试着这样,

var cars = ["Saab", "Volvo", "BMW"];
let i  = 0 ;
setInterval(function loop(){
    document.getElementById("text").innerHTML += cars[i];
    i++;
},1000);

也许你们可以设置定时器,若有车留下来显示

html代码
var汽车=[“萨博”、“沃尔沃”、“宝马”];
var i=0;
函数displayCar(){
document.getElementById(“text”).innerHTML=cars[i++];
如果(i
以下是一个可能的解决方案:

var cars=[“萨博”、“沃尔沃”、“宝马”];
var i=0;
setInterval(函数(){
document.getElementById(“text”).innerHTML=cars[i];
i++;
i=i%3;
},4000)
var cars=[“萨博”、“沃尔沃”、“宝马”];
var i=0;
函数循环(){
document.getElementById(“text”).innerHTML=cars[i];
如果(++i

您可以对不同的文本使用增量超时。他们将在不同的
时间表中打印

var cars=[“萨博”、“沃尔沃”、“宝马”];
汽车。forEach((汽车,指数)=>{
setTimeout(函数循环(){
document.getElementById(“text”).innerHTML=car;
},索引*2000)
})

以下是两种可能的解决方案。 如果你想在最后一站停下来。 或者,如果您想显示,请将其保持在循环中

html代码
var汽车=[“萨博”、“沃尔沃”、“宝马”];
var i=0;
设currentIndex=0;
让inter=setInterval(函数循环(){
如果(当前索引>=车辆长度){
//如果要循环,请执行以下行
currentIndex=0;
//如果要在最后一行停止,请取消注释以下行
//返回清除间隔(间隔);
}
展示车();
}, 4000)
功能展示车(){
document.getElementById(“text”).innerHTML=cars[currentIndex++];
}
展示车()

有很多方法可以做到这一点。一种方法是使用
setInterval
,并在每个时间间隔对cars数组进行迭代。在迭代之后,通过将迭代器增加1,转到下一个值

下面的示例使用闭包将迭代器变量保持在自己的范围内

const cars=[“萨博”、“沃尔沃”、“宝马”];
const textElement=document.getElementById(“文本”);
函数carDisplayer(){
设i=0;
返回功能(汽车){
let interval=setInterval(()=>{
如果(i
试试这个:

<h1 class="name" id="text"></h1> html code
<script>
    var cars = ["Saab", "Volvo", "BMW"];
    var i  = 0 ;
    const timer = setInterval(function () {
        if (i < cars.length) {
            document.getElementById("text").innerHTML += cars[i] + <br>;
            i++;
        }
        else {
            clearInterval(timer);
        }
    }, 4000)
</script>
html代码
var汽车=[“萨博”、“沃尔沃”、“宝马”];
var i=0;
常量计时器=设置间隔(函数(){
如果(i;
i++;
}
否则{
清除间隔(计时器);
}
}, 4000)

请不要将您的代码发布到第三方网站,因为这些链接可能会随着时间的推移而消失,使您的答案毫无意义。只需将您的代码作为代码片段包含在答案中(工具栏上的
按钮)。