You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript实现无限循环逐字依次展示数组中的每个元素?

原有代码问题梳理
  • 条件判断全部误用赋值运算符=,未使用相等判断运算符===,导致逻辑完全不生效
  • 未实现字符索引j的自增逻辑,写了无效代码j + 0,无法逐字读取内容
  • 页面加载事件监听错误,直接执行spell()而非传入函数引用,导致逻辑在DOM未完成加载时就触发
  • HTML标签拼写错误,center的闭合标签误写为</centre>
  • 自定义函数名clear和浏览器全局内置方法冲突,可能引发执行异常
修正后代码

HTML代码

<center id="targ"></center>

JS代码

let textArr = ['first', 'second', 'third'];
let i = 0;
let j = 0;

function spell() {
  // 每个单词开始拼写前清空容器
  if (j === 0) {
    clearText();
  }

  setTimeout(function() {
    show();
    j++;
    // 当前单词拼写完成,切换到下一个单词
    if (j === textArr[i].length) {
      j = 0;
      i++;
    }
    // 所有单词拼写完成,重置索引从头开始
    if (i === textArr.length) {
      i = 0;
      j = 0;
    }
    spell();
  }, 1000);
}

// 清空拼写内容
function clearText() {
  document.querySelector('#targ').innerHTML = '';
}

// 展示当前字符
function show() {
  document.querySelector('#targ').innerHTML += textArr[i][j];
}

// 页面加载完成后执行逻辑
addEventListener('load', spell);
效果说明

修正后代码会按照1秒1字的速度逐字输出数组内的单词,每个单词输出完成后会清空容器再输出下一个单词,所有单词全部输出完成后自动回到第一个单词重新开始,实现无限循环效果。

内容的提问来源于stack exchange,提问作者Ans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:45:03