JavaScript实现1-10正反循环计数出现undefined如何修复
计数反向边界异常修复方案
根因分析
你的numbers数组总长度为10,合法索引范围是0~9,对应存储的数值是1~10。反向计数逻辑中,当z减到小于0时你将其赋值为10,10超出了数组的最大合法索引,读取numbers[10]不存在,就会返回undefined。
修复方案
仅需要调整反向按钮监听逻辑的边界赋值规则即可,修改为数组最大合法索引值,同时也能适配后续数组长度变更的场景:
btnBackward.addEventListener("click", function () { let numbersPara = document.getElementById("numbersPara"); z--; if (z < 0) z = numbers.length - 1; // 替换原有的z=10写法 numbersPara.innerText = numbers[z]; });
可选优化
如果后续可能调整计数的区间范围,建议所有边界判断都统一用numbers.length做动态计算,不要写硬编码数值,降低后续维护成本。
内容的提问来源于stack exchange,提问作者TomDev
相关产品推荐
相关产品推荐

