为什么这会返回false?我认为for循环应该遇到前3个,满足if条件然后返回true。谢谢你的帮助。
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
&#13;
答案 0 :(得分:5)
它返回false,因为您要与true
进行比较,并且数组中的所有值都不是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));
&#13;
答案 1 :(得分:0)
条件(array [i] == true)将检查array [i]的值是否为“true”(布尔值)。
从你的数组变量中,没有数组[i]的值为“true”(布尔值),那么条件(array [i] == true)总是为假。