2017-02-15 13 views
0

Я использую videojs в моей реакции приложения, и я хочу, чтобы добиться чего-то вроде этого:Сравнивая CURRENTTIME из videojs со списком номеров

Вещей я являюсь:

  • Текущего время videojs получать непрерывно захвачен в переменной.
  • массив json каждый с ключом startTime и endTime.

То, что я хочу

  • Я хочу, чтобы проверить, есть ли текущее время значение между любой из StartTimes и EndTimes в формате JSON.

Проблема:

  • В текущее время видео плеера непрерывно меняется количество/значение, я не могу понять, как сделать проверку, имеет ли это значение между так много StartTimes и EndTimes.

То, что я пытался до сих пор (но, очевидно, это неправильно)

tags.map((item, i) => { 
       if(item.time <= currentTime <= item.stopTime){ 
        this.props.markerReachedAction(i); 
       } 
      }) 

Как я могу это сделать?

ответ

1

Пожалуйста, используйте условие с двумя неявных сравнениями соединены с помощью && т.е.

if (item.time <= currentTime && currentTime <= item.stopTime) 

Обзора следующего фрагмента, чтобы увидеть, что это проблема. 1 2 должен быть ложным, но он вычисляется как истинный.

$('#a').html('Result of 1 < 3 < 2 = ' + 1 < 3 < 2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="a"></div>

Поскольку значение постоянно обновляется, и вы должны выполнять вычисления непрерывно, а также. Вы должны использовать setInterval вместе с clearInterval. Существуют примеры использования ссылочной ссылки, которую вы можете использовать.

+0

ОК, но это не касается реальной проблемы, которая постоянно изменяется в течение текущего времени. Как я могу сравнить переменную, которая изменяется каждые миллисекунды (или меньше). – ApurvG

+0

Обновлен ответ. Используйте setInterval с 500 мс или 1000 мс и добавьте к нему сравнение. Убедитесь, что отображение в элементе выполнено в функции. –