【发布时间】:2016-10-21 01:30:00
【问题描述】:
为什么返回 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
【问题讨论】:
-
因为你的数组项都没有 == true ...当将数字与 true 进行比较时,只有 == 如果数字为 1 - 我认为 true 被“强制”为 1 以进行比较
-
好吧,没有什么是真的。 3 == 真; // 假 0 == 真; // 假等。
-
看到这个,如果你
console.log(5 + true);你得到6 -
@JaromandaX:是的,完全正确。实际上,每当您与布尔值进行比较时,布尔值都会转换为数字。所以
[1,2,3] == true实际上是在做[1,2,3] == 1。 -
又一个检查
if ((b == true) != false)的理由。
标签: javascript arrays