请教大家,为什么我写的代码运行不出来?没有输出。

来源:4-10 编程练习

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>

写回答 关注

4回答

  • 宋匿
    2016-11-20 21:16:54
    已采纳

    语法错误

    if (infos[i][3])=="大一")
    if (infos[n][1])=="女")

    多了一个反括号。

    而且你这个程序逻辑有问题,应该将整个数组赋值给 arr[n]

    arr[n]=infos[i][0]; => arr[n]=infos[i];

    然后循环 arr ,判断 arr 的性别。

    heylet...

    真是太谢谢你了,arr[n]=infos[i][0]; 这个是错了,但能给我解释下理论上为什么错了吗,自己很容易混淆。

    2016-11-20 21:30:44

    共 1 条回复 >

  • Frank__lin
    2016-11-20 21:22:58

    你的arr数组是一维数组你想输出arr[n][0]当然输出不了啊,你把第一次筛选时候的arr[n]=infos[i][0];改成arr[n]=infos[i];

    然后第二次筛选的时候的if (infos[n][1])=="女")改成if (arr[n][1])=="女")就能通过arr输出你要的数据

    共 2 条回复 >

  • 唐林l
    2016-11-20 21:19:56

    你这样 这样定义二维列表不规范我觉得,而且这样的思路就算能打印出来也不能筛选出大一女生,会筛选出两批人,一批大一,一批女生。你可以参考下别人的代码,看懂理解后,在尝试自己编写,我也是新手,多看几个模板思路在自己操作,一起加油。

    heylet...

    嗯谢谢,我后来按照同学们找出来的错误修改后可以显示了,你也可以一起理解下这个程序。虽然有点复杂

    2016-11-20 21:36:46

    共 1 条回复 >

  • kkkys
    2016-11-20 21:07:13

    你看下那节底下其他同学的代码,很精简,没有你这么麻烦,判断条件就一句话,if(infos[n][1]="女"&&infos[n][3]=="大一")

    heylet...

    题目要求不是要分两次按顺序筛选吗?

    2016-11-20 21:27:51

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题