JavaScript未捕获类型错误:无法调用方法';拼接';第二次迭代中未定义的

JavaScript未捕获类型错误:无法调用方法';拼接';第二次迭代中未定义的,javascript,function,undefined,Javascript,Function,Undefined,我几个小时来一直在想这个问题,但我一点运气都没有 程序在第一次迭代中运行时没有任何问题(数字正确地拼接到阵列中,结果完美地打印到控制台),但在第二次运行时,我遇到了以下错误: 未捕获的TypeError:无法调用未定义的方法“splice” 此时,控制台日志中根本没有打印任何内容 这是第一个函数: var gameRound = [ [], [] ]; fight(); function fight() { var r = 10; var towel = fal

我几个小时来一直在想这个问题,但我一点运气都没有

程序在第一次迭代中运行时没有任何问题(数字正确地拼接到阵列中,结果完美地打印到控制台),但在第二次运行时,我遇到了以下错误:

未捕获的TypeError:无法调用未定义的方法“splice”

此时,控制台日志中根本没有打印任何内容

这是第一个函数:

var gameRound = [
    [],
    []
];
fight();

function fight() {
    var r = 10;
    var towel = false;
    var i = 1;
    while (i <= r && towel == false) {
        round(i);
        console.log("ROUND ", i);
        console.log(boxerA[0]);
        console.log("Punches Thrown: ", gameRound[i][0]);
        console.log("Punches Landed: ", gameRound[i][1]);
        console.log("Jabs Thrown: ", gameRound[i][2]);
        console.log("Jabs Landed: ", gameRound[i][3]);
        console.log("Power Thrown: ", gameRound[i][4]);
        console.log("Power Landed: ", gameRound[i][5]);
        console.log("Fatigue: ", boxerA[28]);
        console.log("Damage: ", boxerA[29]);
        console.log(boxerB[0]);
        console.log("Punches Thrown: ", gameRound[i][6]);
        console.log("Punches Landed: ", gameRound[i][7]);
        console.log("Jabs Thrown: ", gameRound[i][7]);
        console.log("Jabs Landed: ", gameRound[i][9]);
        console.log("Power Thrown: ", gameRound[i][10]);
        console.log("Power Landed: ", gameRound[i][11]);
        console.log("Fatigue: ", boxerB[28]);
        console.log("Damage: ", boxerB[29]);
        i++;
    }
}

当我测试它时,变量
I
仍然计数为“2”,因此我不确定为什么下一行没有被拼接到数组中。

数组索引从
0
开始。您的数组必须在位置
0
1
处添加元素。因此,如果
i
增加到
2
,则会出现错误,因为
gameRound[2]
不存在

如果要将新数组添加到外部数组,则必须显式分配它:

gameRound[i] = [numPunchesTA,numPunchesLA, ...];
或者您必须使用10个空数组初始化
gameRound

或者您必须从
0
开始计数,直到
i
达到
2

var i = 0;
while (i < 2 && towel == false) {
var i=0;
而(i<2&&t==false){

由于您没有真正告诉我们您试图用代码实现什么,因此很难说合适的解决方案是什么。

您应该开始缩进代码,这样会更容易阅读。
var i = 0;
while (i < 2 && towel == false) {