简单的Q Javascript - 为什么返回false?
为什么这会返回false?我会认为for循环应该遇到前3个,满足if条件,然后返回true。谢谢你的帮助。简单的Q Javascript - 为什么返回false?
var array = [3, 3, 0, 0, 0, 3, 3];
function some(array) {
for (var i = 0; i < array.length; i++) {
if (array[i] == true) {
return true;
}
}
return false;
};
console.log(some(array));
// false
,因为你比较true
它返回false,没有你的数组中的值是true
或1(JavaScript的认为是true
)。如果你修改你的支票来检查价值的真实性,那么你会得到你期望的价值。
var array = [3, 3, 0, 0, 0, 3, 3];
function some(array) {
for (var i = 0; i < array.length; i++) {
if (array[i]) { //Notice we just check for a truthy value
return true;
}
}
return false;
};
console.log(some(array));
注意,如果一个值为'1',那么在原始代码 –
中评估为真好点,回答更新以包括您的笔记。 – rdubya
*“数组中的值都不是”真“或”1“*任何转换为”1“的值都可以工作,例如, ''1'','[1]','{toString(){return'1';}}'。 –
条件(阵列[I] == TRUE)将检查是否[I]数组的值是 “真”(布尔型)或没有。
从数组变量中,没有数组[i]的值为“true”(布尔),则条件(数组[i] == true)始终为false。
因为没有你的数组项目== true ...当比较一个数字与真实,它只是==如果数字是1 - 我认为真实是“被强制”为1比较 –
嗯,没有什么是等于true。 3 == true; // false 0 == true; // false 等 – bullzito
看到这个在行动,如果你'console.log(5 +真);'你得到6 –