两次筛选为什么只出现一次结果,删除第一个for与if,第二个用switch的结果就出来了

来源:4-10 编程练习

沐风而行

2016-04-02 15:17

<!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,'大三'],

    ];

 

 //第一次筛选,找出都是大一的信息

 for(var i=0; i<=infos.length;i++){

     if(infos[i][3]=="大一"){

         document.write(infos[i]+"<br/>");

     }

 }

  

 //第二次筛选,找出都是女生的信息

 for(var j=0;j<=infos.length;j++){

     switch(infos[j][1]){

         case '女':

             document.write(infos[j][0]+"<br/>");

     }

 }

    


  

</script>

</head>

<body>

</body>

</html>


写回答 关注

4回答

  • 沐风而行
    2016-04-04 08:15:41

    你们都没明白我的意思  都是为了做题而做题    这个问题涉及的核心问题是  为什么程序停止了  答案自己找到了  是数组越界   一个< 与 <=   0~length-1的问题  

  • syk93
    2016-04-02 16:40:16

    你选出了都是大一的信息  但没有存放到一个新的数组里 infos还是原来的数组,第二次在选又有什么意义

  • sorass
    2016-04-02 16:32:21

      for(var i=0; i<=infos.length;i++)

     {

         if(infos[i][3]=="大一"){

             switch(infos[i][1])

             {

               case '女':

                document.write(infos[i][0]+'&nbsp');

             }

         }

     }

    感觉应该这样吧

  • 万籁皆荏苒
    2016-04-02 16:25:51

    咦你这不能达到选出大一女生的目的啊?

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题