防止在JavaScript中返回false的布尔变量

时间:2011-03-25 13:37:14

标签: javascript boolean boolean-logic

我只是想检查一下我做得对。如果函数bar返回 false ,我的变量foo()开始 false 并设置 true ,但是我针对多个参数检查foo(),如果设置为 true ,则不希望bar返回 false 。这就是我写的:

var bar = false;
var collection = []; // this is filled with arguments for foo
for(var i = 0; i < collection.length; i++) {
    bar = !foo(collection[i]) || bar;
}

应该这样做吗?或者有更简单的方法吗?

2 个答案:

答案 0 :(得分:3)

更改你的for循环来执行此操作,它应该在设置为true后立即跳出:

var bar = false;
var collection = []; // this is filled with arguments for foo
for(i = 0; i < collection.length && !bar; i++) {
    bar = !foo(collection[i]) || bar;
}

答案 1 :(得分:0)

我经常使用Array.maps()Array.includes()这样的东西。

Array.map()在数组中的每个项目上运行一个函数,并将值返回到新数组中。

Array.includes()测试数组是否包含值。

let collection = []; // this is filled with arguments for foo
let test = collection.map((currentItem) => {
  return foo(currentItem);
});
return test.includes(true);