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

不理解这段代码其中的意义

不理解这段代码其中的意义

weibo_淡而无心_0 2016-03-19 14:52:52
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数组不是空的么?每次赋值不是会覆盖掉么?为什么那个赋值不会呗覆盖?,本人新手,很多问题或许有点二,但希望各位能多指教 谢谢
查看完整描述

3 回答

?
杰杰桀

TA贡献2条经验 获得超1个赞

                                                    仅供参考


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];//将数组infos[i]赋给数组arr1[0]

        document.write(arr1[n]+"<br/>");

        n=n+1;//将n+1

        document.write(n);//这句话写在n增1之后,输出结果没有0很正常

    }

    }

    document.write("大一人数: "+arr1.length+"<br/>");



 /*第一个循环过后arr1的数组是[   ['小A','女',21,'大一'],['小D','女',21,'大 一'],['小F','男',21,'大一']['小I','女',20,'大一']  ] */


/*以下循环为筛选出大一学生中是女性的学生*/


for(i=0;i<arr1.length;i++){

    switch(arr1[i][1]){

        case '女':        

        document.write(arr1[i]+"<br/>");

        n=n+1;

    }

    }

   


查看完整回答
1 反对 回复 2016-03-19
?
shiasn

TA贡献4条经验 获得超0个赞

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;//定义n之后作为arr里面数据的索引值
for(i=0;i<infos.length;i++){
    if(infos[i][3]=="大一"){//进行筛选
        arr1[n]=infos[i];//因为这里的i可能是很大的数字,直接作位arr的索引值会导致arr变得很长,所以把n作为arr的索引,这时候n还是0
        document.write(arr1[n]+"<br/>");
        n=n+1;//n+1变为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;
    }
    }


查看完整回答
反对 回复 2016-03-21
?
shiasn

TA贡献4条经验 获得超0个赞

n是0开始的,估计你输出的的代码是写在n=n+1后面了吧?这个n就是arr的索引,让arr的数据的索引值是从0到3

查看完整回答
反对 回复 2016-03-21
  • 3 回答
  • 0 关注
  • 1198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信