>我有一个数组如下:
var temp = ["5","5","5","5"];
这是 If 条件:
if((temp[0] == temp[1]) && (temp[1] == temp[2]) && (temp[2] == temp[3])){
square++;
}
为什么我的最后一个条件temp[2] == temp[3]
返回false
?
当我在控制台中检查这两个索引的值时,它们显示相等,但条件本身返回false
。
有什么想法吗?
您的代码正在正常工作。但是,要检查数组中的所有元素是否相等,只需使用 .each
var temp = ["5","5","5","5"];
if (temp.every((e,i,arr) => e === arr[0])) {
alert("all the same");
}
或使用 es6 套装
var temp = ["5","5","5","5"];
if (new Set(temp).size === 1) alert("all the same");
如果temp[3]
不存在,它可以返回 false。因此,如果您说数组是动态生成的,则有可能正在检查最后一个值是否等于不存在的值。
我的意思是,如果您的array.length = 4
和您正在手动测试是否temp[3] == temp[4]
还要检查NaN
的值,因为NaN == NaN
返回false