function bouncer(arr) { rule=[false,null,0,"",undefined,NaN]; changed=[]; for (i=0;i<arr.length;i++){ dis=false; for(j=0;j<6;j++){ if(arr[i]===rule[j]){dis=true;} break; } console.log(dis); } } bouncer([false, null, 0, NaN, undefined, ""]);
为何不输出6个true?
如何达到我的意图,输出6个true?
付费偷看金额在0.1-10元之间
这会是什么情况?
j
循环第一次之后,直接运行break
,跳出了当前循环,然后就会直接输出false
。那么,当然就只有rule[0]
匹配到了,也就是只有一个true
。那么,这里的代码应该改成这样,匹配到了之后再跳出——你也不看看你的break在那里。
第 3 次:0 === false
里面那个循环执行一次就break了当然不是6个true了。
第 2 次:null === false
result:true
你的逻辑写错了,看这几句话——
改成这样之后,会输出5个
true
和1个false
,为什么还会有个false
?因为NaN
不等于其自身,像这样——result:false
...
第 6 次:"" === false
第 1 次:false === false
一周热门 更多>