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

使用嵌套for循环生成10阶乘法表时数组首元素异常求助

10阶乘法表代码问题分析与修复

问题根源

你的代码里有两个关键操作导致了重复:

  • 外层循环每次执行multiplicationTable[i] = [i],这会给子数组的**第0位(索引0)**赋值为i。
  • 内层循环从j=1开始,给子数组的**第1位(索引1)**赋值为i*1=i,刚好和第0位的i重复。
    另外,因为JS数组索引从0开始,外层循环i从1到10的话,multiplicationTable[0]会是undefined,属于多余的空占位。

修复思路

核心是避免给子数组重复赋值,同时让数组索引从0开始更规范:

  • 初始化子数组为空,直接把每个乘积依次加入,不用提前塞值。
  • 或者调整索引对应关系,让i和j的乘积对应到子数组的正确位置。

修复后的代码

版本1:用push方法(最直观)

var multiplicationTable = []
for (var i = 1; i <= 10; i++) {
    var row = [] // 先创建空的行数组
    for (var j = 1; j <= 10; j++) {
        row.push(i * j) // 把每个乘积添加到行里
    }
    multiplicationTable.push(row) // 把行加入乘法表
}

版本2:直接按索引赋值(修正原代码逻辑)

var multiplicationTable = []
for (var i = 1; i <= 10; i++) {
    multiplicationTable[i - 1] = [] // 用i-1避免出现undefined的第0项
    for (var j = 1; j <= 10; j++) {
        multiplicationTable[i - 1][j - 1] = i * j // 索引从0开始对应乘积
    }
}

修复后的运行结果

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
[4, 8, 12, 16, 20, 24, 28, 32, 36, 40]
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
[6, 12, 18, 24, 30, 36, 42, 48, 54, 60]
[7, 14, 21, 28, 35, 42, 49, 56, 63, 70]
[8, 16, 24, 32, 40, 48, 56, 64, 72, 80]
[9, 18, 27, 36, 45, 54, 63, 72, 81, 90]
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:22:47