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

如何用单个for循环实现JavaScript用户输入数字的升降序乘法表打印

修正单个for循环实现升序/降序乘法表的JavaScript代码

你的代码里降序乘法表逻辑错误,因为直接复用了升序的num * i,导致输出和升序完全一致。另外每次点击按钮时没有清空之前的输出,会造成内容叠加。下面是修正后的代码:

修正后的JavaScript代码

function printTable() {
  const num = Number(document.getElementById("txtNumber").value);
  // 提前获取DOM元素,避免循环内重复查询
  const ascendingOdr = document.getElementById("ascendingOdr");
  const descendingOdr = document.getElementById("descendingOdr");
  
  // 清空之前的输出内容
  ascendingOdr.innerHTML = '';
  descendingOdr.innerHTML = '';

  for (let i = 1; i <= 10; i++) {
    // 升序:num * 1, num * 2 ... num *10
    ascendingOdr.innerHTML += num * i + "<br/>";
    // 降序:num *10, num*9 ... num*1,用11-i来反向获取乘数
    descendingOdr.innerHTML += num * (11 - i) + "<br/>";
  }
};

对应的HTML代码(保持原结构即可)

<input type="text" id="txtNumber" placeholder="Enter number" /> 
<input type="button" value="Print Table." onclick="printTable()" />
<div style="display: flex;">
  <p id="ascendingOdr"></p>
  <p style="margin-left: 20px;" id="descendingOdr"></p>
</div>

关键修改点:

  • 降序计算改用num * (11 - i):当i从1到10循环时,11 - i会得到10到1的反向乘数,刚好对应降序的乘法结果(比如输入5时,i=1得到510=50,i=10得到51=5)。
  • 循环前清空容器内容:避免多次点击按钮时,新的乘法表叠加在旧内容后面。
  • 把DOM元素查询移到循环外:减少不必要的DOM操作,提升代码性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:31:15