如何在数组中的所有布尔值之间应用OR?

Tin*_*ehr 1 javascript

我有

x = [false, false, true, true, false]

我想要一个函数,true如果true数组中至少有一个函数返回,如下所示:http://jsfiddle.net/7uVWk/

x = [false, false, true, true, false];

function hasTrue(x) {
  result = false;
  ?for (var i=0; i <?x.length; i++) {
    result = result || x[i];
  }
}  
document.write(hasTrue(result));
Run Code Online (Sandbox Code Playgroud)

如何更简洁地实现这一结果?

Rob*_*b W 5

使用Array.prototype.some(我没有写一个单独的函数,因为这个语法已经很有意义了):

var x = [false, false, true, true, false];
x.some(function(val) {
    return val === true;
}); // true or false. In this case, true
Run Code Online (Sandbox Code Playgroud)

  • +1这明确地显示了`.some()`的使用,但实际上你可以做`return val;`,或者更好,或者更短,`x.some(Boolean)`. (2认同)