为了账号安全,请及时绑定邮箱和手机立即绑定

代码运行不粗来,不知道是哪里出了问题,求指教

<!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[['小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++){

     for(var j=0;j<4;j++){

         if(infos[i][3]=="大一") document.write(infos[i][0]+"<br/>");

     }

     }

  

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

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

     for(var j=0;j<4;j++){

         if(infos[i][1]=="女") document.write(infos[i][0]+"<br/>");

     }

     }

 

  

</script>

</head>

<body>

</body>

</html>


正在回答

4 回答

<html>

   <head>

   <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>

   <title>编程练习</title>

   <script type="text/javascript">

      var myarr=[['小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<10;i++)

      {

         if(myarr[i][1]=="女" && myarr[i][3]=="大一")

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

          

       }

   </script>

   </head>

   <body>

   </body>

</html>


0 回复 有任何疑惑可以回复我~

楼上正解。注释把第一次筛选和第二次分开了。

 

所以我建议把数组赋值出来。

//第一步把之前的数据写成一个数组的形式,定义变量为 infos
    var infos = [['小A', '女', 21, '大一'], ['小B', '男', 23, '大三'], ['小C', '男', 24, '大四'], ['小D', '女', 21, '大一'], ['小E', '女', 22, '大四'], ['小F', '男', 21, '大一'], ['小G', '女', 22, '大二'], ['小H', '女', 20, '大三'], ['小I', '女', 20, '大一'], ['小J', '男', 20, '大三']]

    //第一次筛选,找出都是大一的信息
    var dayi = new Array();
    var x = 0;
    document.write('first:<br/>');
    for (var i = 0; i < infos.length; i++) {
        if (infos[i][3] == '大一') {
            dayi[x] = infos[i];
            x++;
            document.write(infos[i]+'<br/>');
        }
    }
document.write('second:<br/>');
    //第二次筛选,找出都是大一女生的信息
    var dayinv = new Array();
    var y = 0;
    for (var j = 0; j < dayi.length; j++) {
        if (dayi[j][1] == '女') {
            dayinv[y] = dayi[j];
            y++;
            document.write(dayi[j] + '<br/>');
        }
    }

0 回复 有任何疑惑可以回复我~
  1. 数组定义错了,数组赋值有两种方式:一种是var infos=new Array();一种是var infos=[];您这样两种结合是不行的。。。

    解决办法:

    要么把最外层的中括号改为小括号,像这样var infos=new Array(['小A','女','21','大一'],['小B','男','23','大三'],['小C','男','24','大四'],['小D','女','21','大一'],['小E','女','22','大四'],['小F','男','21','大一'],['小G','女','22','大二'],['小H','女','20','大三'],['小I','女','20','大一'],['小J','男','20','大三']);

    要么去掉new Array,像这样var infos=[['小A','女','21','大一'],['小B','男','23','大三'],['小C','男','24','大四'],['小D','女','21','大一'],['小E','女','22','大四'],['小F','男','21','大一'],['小G','女','22','大二'],['小H','女','20','大三'],['小I','女','20','大一'],['小J','男','20','大三']]

  2. 改好数组后可以运行,但结果不对,因为您的循环  for(var j=0;j<4;j++)导致的,这个循环的作用是什么?多余了。建议捋一捋循环的过程,比如:以您的第一次筛选为例,当i=0时进入循环,然后开始j的循环,j=0时打印出符合条件infos[i][3]=="大一"的学生名字,j=1,2,3时又重复打印三次,所以结果看到4个小A之类的。我也只会讲到这么多了,呵呵,这个还是要自己慢慢去理解了,加油

  3. 第三点不是说您代码有错,只是顺便提一提,第二次筛选是在第一次筛选后的基础上进行的

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

        if(infos[i][3]=='大一'){//第一次筛选,找出都是大一的信息    

            if(infos[i][1]=='女'){//第二次筛选,找出都是女生的信息   

            document.write(infos[i][0]);

            }

        }

    }

    有不对的地方,请其他同学指教

0 回复 有任何疑惑可以回复我~

Array后面用()这个括号包含一下

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

代码运行不粗来,不知道是哪里出了问题,求指教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信