var infos =[ ['小A','女',21,'大一'], ['小B','男',23,'大三'], ['小C','男',24,'大四'], ['小D','女',21,'大一'], ['小E','女',22,'大四'], ['小F','男',21,'大一'], ['小G','女',22,'大二'], ['小H','女',20,'大三'], ['小I','女',20,'大一'], ['小J','男',20,'大三'] ]; //第一次筛选,找出都是大一的信息 for( var i=0;i<infos.length;i++){ if(infos[i][3]=="大一"){ document.write(infos[i]+"<br>") } }
上面是第一步和第二步的代码,我都写好了,理解了。但第三步就懵了,会的朋友教下,怎么对第二步得到的数据进行筛选,感谢
我看了一下其他同学的代码,好像很多都是这样写的:
//第二次筛选,找出都是女生的信息 for( var i=0;i<infos.length;i++){ if(infos[i][3]=="大一" && infos[i][1]=="女"){ document.write(infos[i]+"<br>") } }
感觉这样写不符合题意了吧,这样写不就是在原来的数据里筛选了吗?题目要求在第二部得出的数据中进行筛选
//第二次筛选,找出都是女生的信息
demo为重新定义的数组,用于存放筛选出来的大一信息。
for(var i=0;i<demo.length;i++){
if(demo[i][1]=='女')
{ document.write(demo[i][0]+"<br/>");}
}
<script type="text/javascript">
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
var infos = [['小A','女',21,'大一'],['小B','男',23,'大三'],['小C','男',24,'大四'],['小D','女',21,'大一'],['小E','女',22,'大四'],['小F','男',21,'大一'],['小G','女',22,'大二'],['小H','女',20,'大三'],['小I','女',20,'大一'],['小J','男',20,'大三']];
//第一次筛选,找出都是大一的信息,存入学生在数组中的下标就可以了
var freshman = new Array();
var j = 0;
for(var i = 0; i < infos.length; i++) {
if(infos[i][3] === "大一" ) {
freshman[j] = i;
j++;
}
}
//第二次筛选,找出都是女生的信息
for(var k = 0;k < freshman.length;k++){
if(infos[freshman[k]][1] === "女"){
document.write(infos[freshman[k]][0]);
}
}
</script>