为什么是我最后的条件返回false if语句
我有一个数组如下:为什么是我最后的条件返回false if语句
var temp = ["5","5","5","5"];
这里是如果条件:
if((temp[0] == temp[1]) && (temp[1] == temp[2]) && (temp[2] == temp[3])){
square++;
}
为什么是我的最后一个条件temp[2] == temp[3]
返回false
?
当我检查控制台中这两个索引的值时,它们显示的是相等的,但条件本身返回false
。
任何想法?
您的代码正常工作。然而,检查您的阵列中的所有元素都是平等的,简单地使用。每
var temp = ["5","5","5","5"];
if (temp.every((e,i,arr) => e === arr[0])) {
\t alert("all the same");
}
或使用ES6设置
var temp = ["5","5","5","5"];
if (new Set(temp).size === 1) alert("all the same");
在我的情况下,即使这返回错误:(我喜欢你的答案,虽然 –
如果返回false,你的值是不一样的检查隐藏/不可见的字符或空格@VinodBhavnani – baao
它可以如果temp[3]
不存在,则返回false。所以如果你说动态生成数组,你有可能检查你的最后一个值是否等于不存在的值。
我的意思是,如果你的array.length = 4
,你是手工测试,如果temp[3] == temp[4]
还检查值NaN
作为NaN == NaN
回报false
,因为你在指数三个而不是一个双引号 – ja08prat
对不起一个单引号,即只是一个错字。数组正在动态生成。更正了这个问题。 –
*为什么我最后的条件temp [2] == temp [3]返回false?* - 不,它不。 –