如何用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
相关产品推荐
相关产品推荐

