关于第二次筛选

来源:4-10 编程练习

朝闻道夕

2017-01-31 18:16

var st=[

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

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

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

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

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

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

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

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

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

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

     ]

 var st1=new Array();

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

 

 

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

     

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

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

     st1[n]=st[i];

     n++;}

    

 }

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

 

  

for(n=0;n<st1.length;n++){

     

    if(st1[n][1]=="女"){

    document.write(st1[n][0]+"<br/>");

     }

    

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

在上例中,st1[n]不是一个一维数组吗,它里面只有"[小A]","[小D]","[小F]","[小I]"这四个数据吗?怎么通过它来判断这四个是否是女生?


写回答 关注

2回答

  • MeYele
    2017-02-01 11:19:37
    已采纳

    第一次筛选的时候,就是将st[i]的值赋予了st1[n],st[i]的值里面就是最初定义的信息,女生是判断条件,符合“女生”这个条件的,就开始执行将st[i]的值赋予了st1[n]。。

    ['小J','男',20,'大三'] 这里面是不是有四个数据,每个数据分别对应“0”“1”“2”“3” ,所以,你就会看到第二此筛选中有 if(st1[n][1]=="女") 这样的判断条件,按顺序执行[0][1],[1][1],[2][1],[3][1]。这些都是执行过程中利用if的条件进行判断上面的四个数组数据是否符合,符合的话,就输出姓名,姓名就是 通过这句document.write(st1[n][0]+"<br/>")中的st1[n][0]方式输出。

  • 凌渡_0
    2017-01-31 20:58:37

    var infos = [

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

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

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

    ['小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] == "大一" && infos[i][1] == "女") {

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

    }

    }


    朝闻道夕

    谢谢了

    2017-02-02 14:48:59

    共 1 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题