我只是想检查一下我做得对。如果函数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;
}
应该这样做吗?或者有更简单的方法吗?
答案 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);