• Как написать цикличный таймер?

    Stalker_RED
    @Stalker_RED
    Напишите список ваших задач, или периодов, или как их там. В них храните либо длительность, либо время начала и окончания, как вам удобнее.

    Напишите ОДИН setInterval, который сравнивает текущее время со временем старта или конца ваших периодов.

    Конструкции типа time-- идут лесом.
    Потому что и setInterval и setTimeout не гарантируют время срабатывания. Они работают "не раньше чем", а позже - запросто. Только хардкор: const now = new Date() на каждом тике таймера.

    Всякие циферки для отображения вычисляются из разницы между now и start или end, математика простейшая.
    Ответ написан
    Комментировать
  • Как создать проверку для слушателя onkeydown (для тренажера печати)?

    @furashcka
    Возможно стоит использовать объект для букв? С ним вообще не понадобится цикл, проверка будет за одно нажатие, мне кажется код проще получается

    const randomLetters = {
        q: true,
        w: true,
        e: true,
        r: true,
        t: true,
        y: true,
      };
    
      const successAnswers = [];
    
      document.onkeydown = function (e) {
        const key = e.key.toLowerCase();
        const latter = randomLetters[key];
    
        if (latter === true) {
          successAnswers.push(key);
          delete randomLetters[key];
    
          console.log(`randomLetters :>>`, randomLetters);
          console.log(`successAnswers :>>`, successAnswers);
        }
      };


    Ну а если всё таки нужен массив, то зачем вам пробегаться по массиву "самостоятельно", используйте indexOf, он вернёт нужный index элемента, если найдёт совпадение, если не найдёт вернёт -1

    https://developer.mozilla.org/en-US/docs/Web/JavaS...
    Ответ написан
    5 комментариев