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

为什么这样输出的结果不对? 将&&换成||后就可以了,求解!!!

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

            

            continue;

            

        } 

        

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

    

    }


提问者:起个名真无语 2016-05-25 17:54

个回答

  • 慕田峪9273182
    2016-05-26 21:22:22

    很明显你的思维有点问题,正面筛选就该是既是大一又是女的,那么反面筛选就应该是去掉不是大一的或者不是女的,这是集合的概念

  • 起个名真无语
    2016-05-26 11:22:17

    谢谢大家的热情解答,思路进了误区,现在已经弄清楚了

  • 肥仔强
    2016-05-25 22:26:22

    &&,就是一个对象同时满足两个条件满足才被剔除。 而' || ' 不满足第一个条件才去判断第二个条件 即:

    可以看成 不是大一直接进到方法体里剔除,是大一再判断是不是女的,不是?条件成立,进到方法体里剔除,

    剩下的就是大一女生了!  !(infos[i][3]=="大一" && infos[i][1] =="女")排除掉,把!'乘进去' 不就是

    infos[i][3]!="大一" || infos[i][1] !="女" 

  • I依恋Lee
    2016-05-25 18:36:45

    &&是与运算,只有当两边的结果都为True的时候才执行。题目要找的就是大一的女生,可是你当找到得就是大一女生的时候用continue语句跳过本次循环,也就等于没有把题目要的结果输出了呀。

    不知道我这样说你能明白不?

  • 初初初学者
    2016-05-25 18:32:49

    &&是或,左右两边满足才能进行花括号里面的语句,如果左边不满足,右边就不需要判断了