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

为什么出不来结果,单一筛选就能出来

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

 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++){

         var demo1=[];

         demo1=infos[i]

        

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

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

     for(var j = 0;j < demo1.length;j++ ){

        if(demo1[j]=="大一"&&demo1[j]=="女" ){

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

        }

     }

     

 }


提问者:慕丝4410454 2020-05-07 14:42

个回答

  • 仰_慕
    2020-05-08 22:00:16

    你数组里面的引号出错了,有单有双,改为单引号就行了。

  • weixin_慕少6494168
    2020-05-08 13:44:37

     if(demo1[j]=="大一" &&demo1[j]=="女")这里有问题,demo[j]不可能同时是“大一”和“女生”,改成if(demo1[j]=="大一" &&demo1[j-2]=="女")就可以了

  • qq_慕少8309659
    2020-05-08 11:28:46

    你看一下,你的  if(demo1[j]=="大一"&&demo1[j]=="女" ) 这部分代码,首先想法是非常棒的。但是,demo1[j]只可能且只能为一个值,你不能同时要求demo1[j]=="大一"和demo1[j]=="女"。你可以这样修改:

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

            var demo1=[];

            demo1=infos[i]

            if(demo1[3]=="大一"&&demo1[1]=="女" ){

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

            }

         }