Подсчитайте, сколько раз document.hasFocus возвращает «true», если оно равно или больше 15, сделайте что-нибудь

#javascript

#javascript

Вопрос:

Я использую setInterval для проверки каждую секунду document.hasFocus() , поэтому каждую секунду он возвращает true или false .

 setInterval(function() {
    console.log(document.hasFocus());
}, 1000);
 

Когда возврат true равен или больше 15, я хотел бы что-то сделать. Я написал приведенный ниже код (который, очевидно, не работает), чтобы было легче понять, чего я хочу достичь.

 if (document.hasFocus()) ≥ 15 {
    do something
}
 

Кто-нибудь может мне помочь с этим?

Ответ №1:

document.hasFocus() возвращает логическое значение, а не число. Таким образом, вы можете использовать счетчик и увеличивать его каждый раз, когда document.hasFocus() возвращает true. Затем вы можете протестировать счетчик.

Ответ №2:

Насколько я вижу, вы просто хотите посчитать 15 раз, прежде чем вызывать какую-либо функцию или выполнять какую-либо логику, переменная, которая отвечает за подсчет, представляет состояние вашего приложения. Итак, мы назовем это count

 let count = 0;
 

затем мы просто увеличиваем количество, пока условие выполняется каждую секунду, пока, наконец, мы не остановим интервал, когда условие выполнено

 let intervalToken = setInterval(function checkDocument(){

   if(document.hasFocus()){
     count = count   1;

     if(count > 15){
         clearInterval(intervalToken); // stop intervale here
         callMyFunction();  // call your function here
      }

   }

}, 1000)
 

Комментарии:

1. Теперь я понял, что мне действительно нужен был только оператор «===». «>=» или «>» выполняет функцию каждую секунду (в зависимости от интервала времени). Я адаптировал это, и оно работало так, как должно. Спасибо 🙂

Ответ №3:

Просто добавьте счетчик, подобный этому:

 let counter = 0;
if (document.hasFocus() amp;amp;   counter >= 15) {
    alert('you did it!');
}
 

Ответ №4:

Вам просто нужна переменная для подсчета количества раз document.hasFocus() .

 let focusCount = 0;

setInterval(() => {
  focusCount = document.hasFocus() ? focusCount   1 : focusCount;
  if (focusCount >= 15) {
    console.log(focusCount);
  }
}, 1000);