问答详情
源自:4-10 编程练习

为什么我这样写不行

<!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,'大三']
  ];
 //第一次筛选,找出都是大一的信息   
   for(var i=0;i<infos.length;i++){
  if( infos[i][1] == "女" ){ 
  var arr1 = []; var n=0;n++;
       arr1[n] = infos[i];
      document.write(arr1[n]+"<br/>");
  } 
   } 
   document.write("女生人数: "+arr1.length+"<br/>") 
 //第二次筛选,找出都是女生的信息
      for(var i=0;i<arr1.length;i++){
        //这里可以用switch 
  if(arr1[i][3]=="大一")
  { document.write(arr1[i][3]+"<br/>");}
 }     
</script>
</head>
<body>
</body>
</html>

提问者:慕数据7935617 2016-06-17 09:35

个回答

  • Logic_Power
    2016-06-17 10:36:07

    <!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,'大三']
      ];
      var arr1 = new Array();//此处变量声明应该放在循环外面,否则每次循环会被重置
      var n=0;//同理
     //第一次筛选,找出都是女生的信息    
       for(var i=0;i<infos.length;i++){ 
      if( infos[i][1] == "女" ){  
        
           arr1[n] = infos[i];
          document.write(arr1[n]+"<br/>");
          n++;//数组下标是从0开始的,所以放在输出后再加一
      }  
       }  
       document.write("女生人数: "+arr1.length+"<br/>")  
     //第二次筛选,找出都是大一的信息
          for(var i=0;i<arr1.length;i++){ 
            //这里可以用switch  
      if(arr1[i][3]=="大一")
      { document.write(arr1[i]+"<br/>");}//不是arr1[i][3]
     }      
    </script>
    </head>
    <body>
    </body>
    </html>

    主要是变量声明放在循环体里了,帮你修改了代码,现在可以执行了,注释了修改点和原因。