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

JS如何把刷选的数组放进去新数组?

<!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=[
         ['小A','女',21,'大一'],
         ['小B','男',23,'大三'],
         ['小C','男',24,'大四'],
         ['小D','女',21,'大一'],
         ['小E','女',22,'大四'],
         ['小F','男',21,'大一'],
         ['小G','女',22,'大二'],
         ['小H','女',20,'大三'],
         ['小I','女',20,'大一'],
         ['小J','男',20,'大三'],
     ];
     
 //第一次筛选,找出都是大一的信息
   // document.write("1.输出都是大一的所有信息:"+"<br/>");
   // for(i=0;i<=infos.length;i++)
    //{
   //   var j=3;
   //   if(infos[i][j]=="大一")
   //   document.write(infos[i] + "<br/>");
   // }
 //第二次筛选,找出都是女生的信息
 //function num2{
    document.write("2.打印出都是大一女生姓名:");
    for(i=0;i<=infos.length;i++)
    { 
        var j=3;
        if(infos[i][j]=="大一"){
            var newarr = new Array();
            newarr.push(infos[i]);
            for(x=0;x<newarr.length;x++){
                var y=1;
                if(newarr[x][y]=="女"){
                    document.write(newarr[x][0]+"<br/>");
                    
                }
               
            } 
          
        }
    }
 //}
 
  
</script>
</head>
<body>
</body>
</html>

问题是这样的,我循环找到了大一的学生,想把找到的大一学生放进一个新数组,然后再从新数组里面全是女的学生名字,求解答

提问者:墨以丶不思量 2017-03-10 17:15

个回答

  • billiskilled
    2017-03-12 17:20:20
    已采纳

    嗯,我看了一下。你的代码是正确的。我当时是看到你的题目里有个错别字,没有理解清楚你的意思。然后看你创建了一个newArray在循环,以为你可能循环错了。你最后上传的代码比之前的好。

  • 墨以丶不思量
    2017-03-10 18:52:53

    <!DOCTYPE  HTML>
    <html >
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>流程控制语句</title>
    <script type="text/javascript">
     //第一步把之前的数据写成一个数组的形式,定义变量为 infos
     infos=[
             ['小A','女',21,'大一'],
             ['小B','男',23,'大三'],
             ['小C','男',24,'大四'],
             ['小D','女',21,'大一'],
             ['小E','女',22,'大四'],
             ['小F','男',21,'大一'],
             ['小G','女',22,'大二'],
             ['小H','女',20,'大三'],
             ['小I','女',20,'大一'],
             ['小J','男',20,'大三'],
         ];
         
        var newarr = new Array();
        var x=0;
     //第一次筛选,找出都是大一的信息
        document.write("1.筛选出是大一学生的所有信息:<br/>");
        for(i=0;i<infos.length;i++)
        {
          var j=3;
          if(infos[i][j]=="大一"){
            newarr[x]=infos[i];
            x++;
            document.write(infos[i] + "<br/>");
          }
        }
     //第二次筛选,找出都是女生的信息
        document.write("<br/>2.筛选出是大一的女生姓名:<br/>");
        for(x=0;x<newarr.length;x++)
        { 
            var y=1;
            if(newarr[x][y]== "女")
                   document.write(newarr[x][0] + "<br/>");
        
              
        }
     
      
    </script>
    </head>
    <body>
    </body>
    </html>

    这是拆分后的代码。应该看上去没这么乱,=。=

  • 墨以丶不思量
    2017-03-10 18:48:56

    <!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=[
             ['小A','女',21,'大一'],
             ['小B','男',23,'大三'],
             ['小C','男',24,'大四'],
             ['小D','女',21,'大一'],
             ['小E','女',22,'大四'],
             ['小F','男',21,'大一'],
             ['小G','女',22,'大二'],
             ['小H','女',20,'大三'],
             ['小I','女',20,'大一'],
             ['小J','男',20,'大三'],
         ];
           
     //第一次筛选,找出都是大一的信息
        document.write("1.输出都是大一的所有信息:"+"<br/>");
        for(i=0;i<infos.length;i++)
        {
          var j=3;
          if(infos[i][j]=="大一")
          document.write(infos[i] + "<br/>");
    }
     //第二次筛选,找出都是女生的信息
     //function num2{
        document.write("<br/>2.打印出都是大一女生姓名:<br/>");
        for(i=0;i<infos.length;i++)
        { 
            var j=3;
            if(infos[i][j]=="大一"){
                var newarr = new Array();
                newarr.push(infos[i]);
                for(x=0;x<newarr.length;x++){
                    var y=1;
                    if(newarr[x][y]=="女"){
                        document.write(newarr[x][0]+"<br/>");    
                    } 
                }  
            }
        }
     //}
       
        
    </script>
    </head>
    <body>
    </body>
    </html>

    这是修改后的代码。

  • billiskilled
    2017-03-10 17:45:07

    你这样写逻辑肯定是不对的,你需要等大一学生统计完了(for大一学生执行完了之后),才能统计大一的女的。