为了账号安全,请及时绑定邮箱和手机立即绑定

二维数组的声明问题

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

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";

……

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

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

雷慕 提问者

测试了不行。必须写成var myarr= new Array([],[])才能正确输出。 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 回复 有任何疑惑可以回复我~
#2

雷慕 提问者

非常感谢!
2015-02-12 回复 有任何疑惑可以回复我~

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

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 />");
    }


1 回复 有任何疑惑可以回复我~
#1

康振宁

那你这不是解决了吗?还有什么不懂的吗?
2015-02-11 回复 有任何疑惑可以回复我~
#2

雷慕 提问者 回复 康振宁

是的。谢谢了!
2015-02-12 回复 有任何疑惑可以回复我~
#3

雷慕 提问者 回复 康振宁

突然反映过来了。申请几维的数组,只需要在小括号里写上几个中括号就好了,哈哈。脑子一时浆糊了。
2015-02-12 回复 有任何疑惑可以回复我~
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 />");
    }


0 回复 有任何疑惑可以回复我~
#1

康振宁

这种写法中,行不能发生改变,也就是说,只能是一维数组。上面没有说清楚
2015-02-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468188    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

二维数组的声明问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信