为了账号安全,请及时绑定邮箱和手机立即绑定

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

 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 />");

    

    }


正在回答

5 回答

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

0 回复 有任何疑惑可以回复我~
#1

起个名真无语 提问者

是的,进入误区了,谢谢热心解答
2016-05-27 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

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

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

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

0 回复 有任何疑惑可以回复我~
#1

起个名真无语 提问者

谢谢答复, 还是有疑问 !(infos[i][3]=="大一" && infos[i][1] =="女") 把!'乘进去' 不就是 infos[i][3]!="大一" || infos[i][1] !="女" ,为什么乘进去后 逻辑运算符就变了?
2016-05-26 回复 有任何疑惑可以回复我~
#2

起个名真无语 提问者

我是要求被筛选数据一次性要满足2个条件,,用 && 肯定是对的。不明白的是为什么这里要用 || ,这个运算符只需要满足一个条件即可
2016-05-26 回复 有任何疑惑可以回复我~

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

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

0 回复 有任何疑惑可以回复我~
#1

起个名真无语 提问者

我想你没看清楚我的代码,我用的是反向思维,我是剔除掉 不是 “大一” 和 “女”的数组, 用的是 !=
2016-05-25 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

起个名真无语 提问者

逻辑运算符 逻辑运算符用于测定变量或值之间的逻辑。 给定 x=6 以及 y=3,下表解释了逻辑运算符: 运算符 描述 例子 && and (x < 10 && y > 1) 为 true || or (x==5 || y==5) 为 false ! not !(x==y) 为 true
2016-05-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信