qq_慕斯7122577
2019-01-16 17:12
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<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,'大三']];
//第一次筛选,找出都是大一的信息
document.write("第一次筛选,找出都是大一的信息"+"<br>");
var temp=[];
for(i=0;i<infos.length;i++){
for(j=0;j<infos[i].length;j++){
if(infos[i][j]=='大一'){
temp[i]=infos[i];
document.write("["+temp[i]+"]"+"<br/>");
}
}
}
//第二次筛选,找出都是女生的信息
document.write("第二次筛选,找出都是女生的信息"+"<br>");
for(i=0;i<temp.length;i++){
for(j=0;j<temp[i].length;j++){
if(temp[i][j]=='女')
document.write("["+temp[i][0]+"]"+"<br/>");
}
}
</script>
</head>
<body>
</body>
</html>
效果图:第一次没问题,为什么第二次只出来一条。
如果你想把第一次筛选的结果都存放到temp中,用temp[i]=infos[i];是不对的。因为对于不是大一的学生,temp也会给他空对应的位置,只不过值为空。temp里的数据如下:
[小A,女,21,大一]
[undefined]
[undefined]
[小D,女,21,大一]
[undefined]
[小F,男,21,大一]
[undefined]
[undefined]
[小I,女,20,大一]
你可以参考以下的方法来设置,保证temp中没有空值。
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题