Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 当我使用===而不是!==时,为什么更改“if”条件会给出不同的答案?_Javascript_Arrays_If Statement - Fatal编程技术网

Javascript 当我使用===而不是!==时,为什么更改“if”条件会给出不同的答案?

Javascript 当我使用===而不是!==时,为什么更改“if”条件会给出不同的答案?,javascript,arrays,if-statement,Javascript,Arrays,If Statement,函数检查数组元素是否相同,如果它们相同,则返回true 当我使用下面的函数时,它给出了正确的结果 var-arr=[1,2,3,4]; 函数是统一格式的{ var store=arr[0]; 对于变量i=0;i arr.includes(arr[0]) // returns true 问题是,如果下一个值之一与arr[0]相同,则代码段将返回true,请参见以下示例: var-arr=[1,1,3,1,1]; 函数是统一格式的{ var store=arr[0]; 对于变量i=0;i

函数检查数组元素是否相同,如果它们相同,则返回true

当我使用下面的函数时,它给出了正确的结果

var-arr=[1,2,3,4]; 函数是统一格式的{ var store=arr[0]; 对于变量i=0;iconsole.logisUniformarr 因为如果第一个元素相同,它将返回true。它不会检查所有元素,而第二个元素将返回true。如果所有元素都相同,则返回true。如果其中一个元素不相同,则返回false

可能最短的方法是:

 (new Set(array)).size === 1

它返回真的。。。你也可以考虑做……/P>
arr.includes(arr[0]) // returns true

问题是,如果下一个值之一与arr[0]相同,则代码段将返回true,请参见以下示例:

var-arr=[1,1,3,1,1]; 函数是统一格式的{ var store=arr[0]; 对于变量i=0;iconsole.logisUniformarr 截取的第二个代码不检查是否所有元素都等于store,如果至少有一个元素等于store,则返回true


如果所有元素都不等于store,那么第一个函数返回false,如果所有元素都等于store,那么返回true,但是前面没有测试所有元素是否等于store,在这种情况下,这只是一个逻辑结论

第一个循环给出了正确的答案,因为列表中的元素不相同,第二个循环的问题是它检查列表中的每个元素,当我发现一个元素等于数组[0]时(在本例中为1),它将返回true,这是不可能的

第二个循环应该是:

var-arr=[1,2,3,4]; 函数是统一格式的{ var store=arr[0]; var响应=假; 对于变量i=0;iconsole.logisUniformarr;在snippetstry中,对于不同的数组元素,两者都返回true@Sanchita请检查@Luca给出的答案。你会明白问题是什么除非它是一个对象数组,否则它总是返回true