var infos=[['小A','女',21,'大一'],['小B','男',23,'大三'],['小C','男',24,'大四'],['小D','女',21,'大一'],['小E','女',22,'大四'],['小F','男',21,'大一'],['小G','女',22,'大二'],['小H','女',20,'大三'],['小I','女',20,'大一'],['小J','男',20,'大三']];var arr1=new Array();var n=0;for(i=0;i<infos.length;i++){ if(infos[i][3]=="大一"){ arr1[n]=infos[i]; document.write(arr1[n]+"<br/>"); n=n+1; document.write(n); } } document.write("大一人数: "+arr1.length+"<br/>"); for(i=0;i<arr1.length;i++){ switch(arr1[i][1]){ case '女': document.write(arr1[i]+"<br/>"); n=n+1; } } 首先我想问 这里面的n是什么用?!一直不明白 如果是储存数组个数也不对啊,因为我输出过这个n,是1.2.3.4,没有0.还有我想问 一个如果是两个循环像这个代码,他是先执行完上面的循环再执行下面的循环,还说说上面的循环加上下面的循环?然后 那个arr1数组不是空的么?每次赋值不是会覆盖掉么?为什么那个赋值不会呗覆盖?,本人新手,很多问题或许有点二,但希望各位能多指教 谢
1 回答
战渣一号
TA贡献4条经验 获得超1个赞
n是数组下标啊 至于你说的你输出n是1 2 3 4 是因为document。write(n)之前经过n=n+1;之后n从0变成了1,
两个循环的话假设for(var i=0;i<12;i++){ for(var j=0;j<10;j++){ 执行语句1号 } }这样的语句的话当 i = 0的时候进入第二层循环也就是j=0那层,然后j从0到9执行一遍,然后 i=1的时候,在执行i=0到i=9;不断循环,而for(var j=0;j<10;j++){ 执行语句1号 }里的执行语句1号就会执行10*12次
arr1数组刚创建的时候的确是空的,但是js的数组和C C++里的数组有点不同。js里的数组不定长,可以不断拓展,
所以n=n+1就是在不断拓展arr1数组 是的数组的最后一位始终空着;
添加回答
举报
0/150
提交
取消