heyleta
2016-11-20 20:43
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
var infos=new Array();
infos[0]=['小A','女',21,'大一'];
infos[1]=['小B','男',23,'大三'];
infos[2]=['小C','男',24,'大四'];
infos[3]=['小D','女',21,'大一'];
infos[4]=['小E','女',22,'大四'];
infos[5]=['小F','男',21,'大一'];
infos[6]=['小G','女',22,'大二'];
infos[7]=['小H','女',20,'大三'];
infos[8]=['小I','女',20,'大一'];
infos[9]=['小J','男',20,'大三'];
document.write(infos);
//第一次筛选,找出都是大一的信息
document.write("所有大一学生的信息:"+"<br/>");
var arr=new Array();
var n=0;
for(var i=0;i<infos.length;i++){
if (infos[i][3])=="大一"){
document.write(infos[i][0]+"<br/>");
arr[n]=infos[i][0];
n++;
}
}
//第二次筛选,找出都是女生的信息
document.write("所有的女生信息:"+"<br/>");
for (n=0;n<arr.length;n++){
if (infos[n][1])=="女"){
document.write(arr[n][0]+"<br/>");
}
}
</script>
</head>
<body>
</body>
</html>
语法错误
if (infos[i][3])=="大一") if (infos[n][1])=="女")
多了一个反括号。
而且你这个程序逻辑有问题,应该将整个数组赋值给 arr[n]
arr[n]=infos[i][0]; => arr[n]=infos[i];
然后循环 arr ,判断 arr 的性别。
你的arr数组是一维数组你想输出arr[n][0]当然输出不了啊,你把第一次筛选时候的arr[n]=infos[i][0];改成arr[n]=infos[i];
然后第二次筛选的时候的if (infos[n][1])=="女")改成if (arr[n][1])=="女")就能通过arr输出你要的数据
你这样 这样定义二维列表不规范我觉得,而且这样的思路就算能打印出来也不能筛选出大一女生,会筛选出两批人,一批大一,一批女生。你可以参考下别人的代码,看懂理解后,在尝试自己编写,我也是新手,多看几个模板思路在自己操作,一起加油。
你看下那节底下其他同学的代码,很精简,没有你这么麻烦,判断条件就一句话,if(infos[n][1]="女"&&infos[n][3]=="大一")
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题
回答 2
回答 2
回答 1
回答 3
回答 5