Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript every()方法未返回正确的值_Javascript_Algorithm_Boolean - Fatal编程技术网

Javascript every()方法未返回正确的值

Javascript every()方法未返回正确的值,javascript,algorithm,boolean,Javascript,Algorithm,Boolean,有人能告诉我为什么这是真的吗?它应该返回false,因为在第一次迭代中,值[pre]==0。。。谢谢 function truthCheck(collection, pre) { function check(value){ if(value.hasOwnProperty(pre)){ return value[pre] !== null || value[pre] !== undefined || value[pre] !== ""|| value[pre

有人能告诉我为什么这是真的吗?它应该返回false,因为在第一次迭代中,值[pre]==0。。。谢谢

function truthCheck(collection, pre) { 
   function check(value){
      if(value.hasOwnProperty(pre)){
         return value[pre] !== null || value[pre] !== undefined || value[pre] !== ""|| value[pre] !== 0; 
      }
   } 
   return collection.every(check);
}    
truthCheck([{"user": "Tinky-Winky", "sex": "male", "age": 0}, {"user": "Dipsy", "sex": "male", "age": 3}, {"user": "Laa-Laa", "sex": "female", "age": 5}, {"user": "Po", "sex": "female", "age": 4}], "age");

使用
&
运算符

return (value[pre] !== null 
        && value[pre] !== undefined 
        && value[pre] !== "" 
        && value[pre] !== 0);

jshiddle

您需要颠倒您的逻辑。i、 返回!(值[pre]==null | | |值[pre]==undefined | | |值[pre]==0)考虑阅读德摩根定律。也可以考虑每一个值不是<代码> null <代码>或> <代码>未定义< /代码>。好的,请解释为什么?我的意思是,如果数组包含属性pre,并且pre的值不等于null、undefined、“”或0,那么返回true(因为它已通过测试)??为什么使用&&运算符有效?还是颠倒逻辑?谢谢,这很有效。但你能解释一下原因吗?因为如果我使用| |运算符,我不是在问它们是否不相等,然后返回false吗?@theNeighbourhoodGhost Using
|
是在问它们是否不相等,然后返回true。表达式可以压缩为
!!value[pre]
如果您只是想看看该值是否相等。“我不是在问这些值是否不相等,然后返回false吗?”否。给定
var value=0;如果(值!==null | |值!==undefined | |值!==“”| |值!==0){console.log(true)}
条件未达到
值!==0
我明白了,它在到达值之前返回一个答案!==0 ? 因为已经有价值了无效的