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

Aug*_*nan 3 javascript arrays

为什么这会返回错误?我认为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
Run Code Online (Sandbox Code Playgroud)

rdu*_*bya 5

它返回false,因为您正在比较true数组中的值并且没有数值是true1(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));
Run Code Online (Sandbox Code Playgroud)