Предотвращение возврата логической переменной в false в JavaScript - PullRequest
1 голос
/ 25 марта 2011

Я просто хочу проверить, правильно ли я делаю.У меня есть переменная bar, которая начинается false и устанавливается true , если функция foo() возвращает false , однако я проверяю foo() по нескольким аргументами не хотим, чтобы bar возвращался к false , если он установлен true .Вот что я написал:

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 ]

3 голосов
/ 25 марта 2011

Измените цикл 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;
}
0 голосов
/ 02 января 2019

Я часто использую 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);
...