问答详情
源自:3-7 二维数组

二维数组的声明问题

我记得在一维数组是可以自动扩充的,比如

var myarr=new Array();
myarr[0]=1;
myarr[1]=2;
myarr[2]=3;

这个时候myarr.length=4,如果我在后面多了一个赋值语句

myarr[3]=4;

则myarr.length=4


但是为什么这个逻辑不适用于二维数组呢?我的意思是说为什么我不能声明一个空的二维数组,然后通过赋值语句自动扩充呢?比如下面这样

var myarr=new Array(["","","",""]);
myarr[0][0]="00";
myarr[0][1]="01";
myarr[0][2]="02";
myarr[0][3]="03";

myarr[1][0]="10";
myarr[1][1]="11";
myarr[1][2]="12";
myarr[1][3]="13";

……

经过实测,我必须声明的数组大小和后面的赋值语句完全匹配才可以。谁能解答以下我的疑惑?

提问者:雷慕 2015-02-10 00:40

个回答

  • 康振宁
    2015-02-11 14:39:37
    已采纳

    你可以这么写,var myarr = new Array([]);然后再在下面,来定义,你所定义的myarr[0][0]等一些二维数组的元素 

  • 雷慕
    2015-02-11 14:56:46

    测试能正确的输出必须写成下面这样:

    var arr = new Array([],[]);
        arr[0][0]=0;
        arr[0][1]=1;
        arr[1][0]=2;
        arr[1][1]=3;
        for (var i=0;i<=1;i++){
          document.write(arr[i]+"<br />");
        }


  • 雷慕
    2015-02-11 14:55:45

    var arr = new Array([]);
        arr[0][0]=0;
        arr[0][1]=1;
        arr[1][0]=2;
        arr[1][1]=3;
        for (var i=0;i<=1;i++){
          document.write(arr[i]+"<br />");
        }