4-10这一节,任务第三步怎么做?

来源:4-10 编程练习

HackerX

2016-04-19 12:27

 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][3]=="大一"){
        document.write(infos[i]+"<br>")
            }
        }

上面是第一步和第二步的代码,我都写好了,理解了。但第三步就懵了,会的朋友教下,怎么对第二步得到的数据进行筛选,感谢


我看了一下其他同学的代码,好像很多都是这样写的:

 //第二次筛选,找出都是女生的信息
 for( var i=0;i<infos.length;i++){
    if(infos[i][3]=="大一" && infos[i][1]=="女"){
        document.write(infos[i]+"<br>")
            }
        }

感觉这样写不符合题意了吧,这样写不就是在原来的数据里筛选了吗?题目要求在第二部得出的数据中进行筛选

写回答 关注

2回答

  • 老娘很帅
    2016-04-19 13:03:10
    已采纳

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

    demo为重新定义的数组,用于存放筛选出来的大一信息。

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

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

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

    }     


    Hacker...

    嗯,我就是不知道如何重新定义数组,但是看了你的答复,受到了启发,题目做出来了,谢了。

    2016-04-20 09:03:53

    共 2 条回复 >

  • NeoWu95
    2016-04-19 14:40:22

    <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 freshman = new Array();

     var j = 0;

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

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

    freshman[j] = i;

            j++;

    }

     }


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

     for(var k = 0;k < freshman.length;k++){

         if(infos[freshman[k]][1] === "女"){

             document.write(infos[freshman[k]][0]);

         }

     }

     

      

    </script>


JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题