简单的Q Javascript - 为什么这会返回false?

时间:2016-10-21 01:30:01

标签: javascript arrays

为什么这会返回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;
&#13;
&#13;

2 个答案:

答案 0 :(得分:5)

它返回false,因为您要与true进行比较,并且数组中的所有值都不是true或1(javascript认为是true)。如果您修改支票只是检查值的真实性,那么您将得到您期望的值。

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

条件(array [i] == true)将检查array [i]的值是否为“true”(布尔值)。

从你的数组变量中,没有数组[i]的值为“true”(布尔值),那么条件(array [i] == true)总是为假。