Почему вместо результата функции, в консоли, я получают ее текст, вместо значения
Нужно вывести текущую длительность видео - 60 секунд. Но если это первые 60 секунд видео, то получится отрицательная длительность. По этому нужно приравнять отрицательные значения к 0. Попробовал так, но не работает. Подскажите что я сделал не так? Можно ли решить задачу проще?
let momentTime = function() {
var videoTime = parseInt(document.querySelector('video').currentTime) - 60;
if ( videoTime > 0) {
videoTime
} else {
0
}
};
console.log(momentTime);
Ответы (2 шт):
Ваша функция не возвращала результата. Надо добавить return перед тем значением, которое должно быть возвращено функцией.
let momentTime = function() {
var videoTime = parseInt(document.querySelector('video').currentTime) - 60;
if ( videoTime > 0) {
return videoTime
} else {
return 0
}
};
console.log(momentTime());
Или это же можно сократить немного
let momentTime = function() {
var videoTime = parseInt(document.querySelector('video').currentTime) - 60;
return videoTime > 0 ? videoTime : 0;
};
console.log(momentTime());
Раз уж @SwaD вам всё объяснил, то повторяться не буду, но приложу своё решение, где задача решена более простым путём.
let momentTime = function() {
var videoTime = parseInt(document.querySelector('video').currentTime) - 60;
return Math.max(0, videoTime)
};
console.log(momentTime());
Функция теперь возвращает самое большое число, то есть, либо 0, либо текущее_время_видео - 60. Для примера: если текущее_время_видео - 60 = -1, то выберется 0, т.к. 0 > -1, а если текущее_время_видео - 60 = 2, то выберется 2, т.к. 2 > 0.