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

这样写哪里错了,为什么显示不出来

<!DOCTYPE  HTML>

<html >

<head>

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

<title>流程控制语句</title>

<script type="text/javascript">

var infos=new Array[

    ['小A','女',21,'大一'],['小B','男',23,'大三'],

    ['小C','男',24,'大四'],['小D','女',21,'大一'],

    ['小E','女',22,'大四'],['小F','男',21,'大一'],

    ['小G','女',22,'大二'],['小H','女',20,'大三'],

    ['小I','女',20,'大一'],['小J','男',20,'大三'] ];

 //第一步把之前的数据写成一个数组的形式,定义变量为 infos

 for(i=0;i<=3;i++){

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

    {document.write("是大一的人有"+[i][3]+"<br/>");}

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

 

  if([i][2]=="女")

  {document.write("是大一女生的名字"+[i][1]);}

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

 }

</script>

</head>

<body>

</body>

</html>


提问者:一切太突然3125650 2016-04-13 18:15

个回答

  • 仁太
    2016-04-26 12:33:04

    你贴出来的这部分代码  没有for(){}的后大括号 没有终结  然后我说的i0  i1只是这么说  你书写还是要写成 infos[i][0]  这样才能定位到数组  不然你直接写[i][0]会找不到定位的数组的 所有的[i][0]前面都要加上infos 再试试吧 前期不要省略  所有的代码都要写完善了  注意我说的那些

  • 仁太
    2016-04-26 09:23:32

    var infos=[

        ['小A','女',21,'大一'],['小B','男',23,'大三'],

        ['小C','男',24,'大四'],['小D','女',21,'大一'],

        ['小E','女',22,'大四'],['小F','男',21,'大一'],

        ['小G','女',22,'大二'],['小H','女',20,'大三'],

        ['小I','女',20,'大一'],['小J','男',20,'大三'] ];


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

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

             {

                document.write("是大一的人有"+infos[i][0]+"<br/>")

              if(infos[i][1]=="女")

                  {

                    document.write("是大一女生的名字"+infos[i][0]+"<br/>");

                }

            }

    }

    这是正确代码  根据你最后发的改的  具体改动有

    1. for()里面的判断  i<infos.length   

    2. 第一个if()中 你判断对了 但是输出不对  输出的应该是名字 而不是infos[i][3] i3输出的是大几 i0输出的才是名字

    3. 第二个if()中  条件应该是 infos[i][1]=="女" 而不是i2 数组是从0开始的  所以是1而不是2 

    4. 第二个if()中的输出  和上一个一样  应该输出名字i0 而不是性别i1 这个还是数组的下标问题  你可以再看看数组

    5. 你的两个if() 是在for中的两个{}{}中分开写的  这样会出现第一个输出所有大一的  第二个输出所有女生  并不是大一女生  应该放在一个{}中 这样输出的就是大一女生  如果觉得混乱可以把第一个if出来的结果放到一个新定义的数组 再用第二个if判断新数组的女生  比较麻烦而已


  • 一切太突然3125650
    2016-04-17 19:19:47

    还是不可以诶

    <title>流程控制语句</title>

    <script type="text/javascript">

    var infos=new Array[

        ['小A','女',21,'大一'],['小B','男',23,'大三'],

        ['小C','男',24,'大四'],['小D','女',21,'大一'],

        ['小E','女',22,'大四'],['小F','男',21,'大一'],

        ['小G','女',22,'大二'],['小H','女',20,'大三'],

        ['小I','女',20,'大一'],['小J','男',20,'大三'] ];

     //第一步把之前的数据写成一个数组的形式,定义变量为 infos

     for(i=0;i<=3;i++){

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

        {document.write("是大一的人有"+infos[i][3]+"<br/>");}

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

     

      if(infos[i][2]=="女")

      {document.write("是大一女生的名字"+infos[i][1]);}

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

     }

    </script>


  • qq_弥_1
    2016-04-16 11:33:40

    你的判断语句  if([i][2]=="女") 应该if(infos[i][3]=="大一")   输出的时候也是这样的infos[i][3]  以上。

  • 一切太突然3125650
    2016-04-14 12:20:16

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

     //第一步把之前的数据写成一个数组的形式,定义变量为 infos

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

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

        {document.write("是大一的人有"+[i][3]+"<br/>");}

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

     

      if([i][2]=="女")

      {document.write("是大一女生的名字"+[i][1]);}

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

     }

    </script>

    </head>

    <body>

    </body>

    </html>

    还是不行诶,还要怎么改?

  • 旋转吧丶雪月花
    2016-04-13 21:42:09

    数组定义就开始错了吧,,直接赋值就不写new Array了吧,,还有只循环4次??for语句中间的条件改成i<=infos.length

  • 一切太突然3125650
    2016-04-13 21:33:39

    <script type="text/javascript">

    var infos=new Array[

        ['小A','女',21,'大一'],['小B','男',23,'大三'],

        ['小C','男',24,'大四'],['小D','女',21,'大一'],

        ['小E','女',22,'大四'],['小F','男',21,'大一'],

        ['小G','女',22,'大二'],['小H','女',20,'大三'],

        ['小I','女',20,'大一'],['小J','男',20,'大三'] ];

     //第一步把之前的数据写成一个数组的形式,定义变量为 infos

     for(i=0;i<=3;i++){

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

        {document.write("是大一的人有"+infos[i][3]+"<br/>");}

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

     

      if([i][1]=="女")

      {document.write("是大一女生的名字"+infos[i][1]);}

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

     }

    </script>


    这样改么,为什么还是没有显示,哪里还错了

  • kevine099
    2016-04-13 18:31:17

    几点错误:

    1. document.write("是大一的人有"+[i][3]+"<br/>");几处if部分和输出部分,[i][3]错误,应该是infos[i][3]

    2.  if([i][2]=="女").性别信息的下表为1

    3. 要求既是大一又是女生的才输出,你的代码会输出:大一所有的人无论男女名字,是女生无论大几的学生名字

    综上,几点错误