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

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数组不是空的么?每次赋值不是会覆盖掉么?为什么那个赋值不会呗覆盖?,本人新手,很多问题或许有点二,但希望各位能多指教 谢谢


weibo_淡而无心_0
浏览 1199回答 3
3回答

杰杰桀

                                                    仅供参考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;    }    }   

shiasn

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

shiasn

n是0开始的,估计你输出的的代码是写在n=n+1后面了吧?这个n就是arr的索引,让arr的数据的索引值是从0到3
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript