慕勒5015391
2019-10-31 11:05
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
var infos=[ ['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']];//第一步把之前的数据写成一个数组的形式,定义变量为 infos
document.write("第一次筛选,找出都是大一的信息"+'<br>');
for(i=0;i<=infos.length;i++){
if(infos[i][3]=='大一'){
document.write(infos[i]+'<br>');
}
}//第一次筛选,找出都是大一的信息
document.write("第二次筛选,找出都是大一女生的信息"+'<br>');
//第二次筛选,找出都是女生的信息
for(i=0;i<=infos.length;i++){
if(infos[i][3]=='大一'&&infos[i][1]=='女'){
document.write(infos[i]+'<br>');
}
}
</script>
</head>
<body>
</body>
</html>
document.write("第一次筛选,找出都是大一的信息<br/>"); for(i=0;i<infos.length;i++) { if(infos[i][3]=="大一") { document.write(infos[i]+"<br/>"); } }
第一次筛选里的for循环条件,i<=infos.length,改为i<infos.length,即可。
因为你的循环次数超过了数组本身长度导致了错误。
document.write("第一次筛选,找出都是大一的信息<br/>"); for(i=0;i<infos.length;i++) { if(infos[i][3]=="大一") { document.write(infos[i]+"<br/>"); } }
要不直接把大一女生筛选出来?
var infos = [ ['小A', '女', 21, '大一'], ['小B', '男', 23, '大三'], ['小C', '男', 24, '大四'], ['小D', '女', 21, '大一'], ['小E', '女', 22, '大四'], ['小F', '男', 21, '大一'], ['小G', '女', 22, '大二'], ['小H', '女', 20, '大三'], ['小I', '女', 20, '大一'], ['小J', '男', 20, '大三'] ]; var i = 0; document.write("大一女生有:<br>") for(i=0;i<infos.length;i++){ if(infos[i][3]=="大一"&&infos[i][1]=="女"){ document.write(infos[i][0]+"<br>"); //输出大一且女生的姓名 } }
最后一行 document.write(infos[i][0]+"br")
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题