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

为什么声明变量第一个是var myarr不是var myarr[i]

var myarr=new Array(); //先声明一维 

for(var i=0;i<3;i++){   //一维长度为3

   myarr[i]=new Array();  //再声明二维 

   for(var j=0;j<5;j++){   //二维长度为5

   myarr[i][j]=i*j;   // 赋值,每个数组元素的值为i+j

   } }

虽然知道这是正确的,

但为什么不是两个声明都有

为什么var myarr[i],而不是var myarr[j]/[q]/[k]呢

求大神给菜鸟一个好理解记忆的说法


正在回答

2 回答

为了能让你更好的理解,我重新描述一下这个过程,

第一句是在声明一个一维数组myarr,在内存中开辟出一块空间来等你给赋与具体的值;

因为题给数组长度是3,所以for循环三次,遍历myarr数组中每一个元素myarr[0].myarr[1],myarr[2];

所以,程序中第三句也可以理解成在遍历的同时创建新的一维数组并赋值给myarr数组的每一个元素myarr[0].myarr[1],myarr[2];

这样的话,myarr数组中的每一个元素也是数组形式的了,就变成了二维数组(数组中的元素还是数组),就像myarr是一个大盒子,里面又被装进了三个小盒子,小盒子里面才是具体的数字,这样能明白了吧?

第二个问题:为什么不是var myarr[j]/[q]/[k]

这个完全可以是j/q/k,方括号里的变量代表的是数组中的索引,也就是第几个元素,大家都习惯了用i表示而已,就像这个数组名字一样,你也可以定义成yourarr,没有影响的.

就这样!

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

慕丝5359371 提问者

超厉害阿, 谢谢大神,这回明白了(๑¯∀¯๑) 还想让你帮把最后两句也解释下,自己理解的不准确( ⸝⸝•௰•⸝⸝ ) 另外弱弱的问一句,能让我抱住你的大腿吗
2016-12-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么声明变量第一个是var myarr不是var myarr[i]

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