Javascript 2D数组生成无法按预期工作

时间:2014-03-09 10:56:17

标签: javascript arrays debugging

我是新来的,也是编程的。无论如何,为了进入主题,我编写了以下程序,目的是在JavaScript中生成二维数组,然后在表中显示其元素。但是,在i行数组索引的值应该显示的位置(如第一行中的1,然后第二行中的2等),数字{ {1}}显示相反。所以,如果有人能解释我做错了什么,我会很感激。这是代码:

10

2 个答案:

答案 0 :(得分:2)

您将同一个数组一次又一次地添加到array1。相反,您需要每次都创建新的数组。

var array1 = [];

for (var i = 0; i < 10; i++ ) {
    var array2 = [];
    for (var j = 0; j < 10; j++) {
        array2[j] = (i+1) + "-" + (j+1);
    }
    array1[i]=array2;
}

但通常,这将使用Array.prototype.push方法完成,就像这样

var array1 = [];

for (var i = 0; i < 10; i++ ) {
    var array2 = [];
    for (var j = 0; j < 10; j++) {
        array2.push((i+1) + "-" + (j+1));
    }
    array1.push(array2);
}

答案 1 :(得分:0)

您可以在每次分配array2array1之后创建新数组,类似这样的

array2=[];

on

for (var i = 0; i < 10; i++ ) {
    for (var j = 0; j < 10; j++) {
        array2[j] = (i+1) + "-" + (j+1);

    }
    array1[i]=array2;
    array2=[]; //created new array each time after array2 assigned
}