请问为啥从第一次筛选的结果里再筛选,只出现了一个筛选结果???

来源:4-10 编程练习

未來Miral

2016-10-24 22:14


<!DOCTYPE  HTML>

<html >

<head>

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

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

<script type="text/javascript">

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

 var info = [

    ['小A','女',21,'大一'],  

    ['小B','男',23,'大三'],

    ['小C','男',24,'大四'],  

    ['小D','女',21,'大一'],

    ['小E','女',22,'大四'],  

    ['小F','男',21,'大一'],

    ['小G','女',22,'大二'],  

    ['小H','女',20,'大三'],

    ['小I','女',20,'大一'],  

    ['小J','男',20,'大三']

    ];

 var i=0; var infos=new Array;

 document.write('大一学生为:'+'<br>');

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

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

 if(info[i][3]=='大一'){

 document.write(info[i]+'<br>');

 infos[i]=info[i]}

 }

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

 document.write('女:'+'<br>');

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

if(infos[i][1]=='女'){

document.write(infos[i]+'<br>');}

}

</script>

</head>

<body>

</body>

</html>

写回答 关注

4回答

  • LiuSq3896679
    2016-10-24 23:56:16
    已采纳

    你的新定义数组infos 对应的是n 而不是i,所以你的 第一个var i=0 是不对的,应该初始化var n=0。

    然后在第一个if语句里面应该是

     if(info[i][3]=='大一')

    {

     document.write(info[i]+'<br>');

     infos[n]=info[i];

    n++

    }

    完整修改后为:

    <!DOCTYPE  HTML>

    <html >

    <head>

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

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

    <script type="text/javascript">

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

     var info = [

        ['小A','女',21,'大一'],  

        ['小B','男',23,'大三'],

        ['小C','男',24,'大四'],  

        ['小D','女',21,'大一'],

        ['小E','女',22,'大四'],  

        ['小F','男',21,'大一'],

        ['小G','女',22,'大二'],  

        ['小H','女',20,'大三'],

        ['小I','女',20,'大一'],  

        ['小J','男',20,'大三']

        ];

     var n=0; 

     var infos=new Array();

     document.write('大一学生为:'+'<br>');

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

     for (i=0;i<info.length;i++)

     {

        if(info[i][3]=='大一')

        {

           document.write(info[i]+'<br>');

           infos[n]=info[i];

           n++

        }

     }

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

     document.write('女:'+'<br>');

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

     {

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

        {

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

        }

     }

    </script>

    </head>

    <body>

    </body>

    </html>



    未來Mira...

    非常感谢!

    2016-10-25 00:16:29

    共 1 条回复 >

  • 人间_上帝
    2016-10-24 23:51:37

    你只要把infos[i]中的i换成其他变量,就能解决问题了!

  • 人间_上帝
    2016-10-24 23:26:45

    new Array();你少了括号

  • 人间_上帝
    2016-10-24 23:11:46

    首先你 infos[i]=info[i]后面少了分号,而且这语句已经赋值给了infos[i],所以会导致后面的if(infos[i][1]=='女')出错!

    未來Mira...

    后面没听明白,具体该怎么改呢?谢谢

    2016-10-24 23:56:24

    共 1 条回复 >

JavaScript进阶篇

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

468190 学习 · 21891 问题

查看课程

相似问题