2017-10-08 12 views
-1

Je reçois un résultat NaN. Clairement, quelque chose ne va pas. Mais je ne peux pas comprendre ce qui ne va pas dans les calculs. Heres le code:NaN JavaScript Résultat

var totalTime = video.duration; 
var milliToHours = function (value) { 
    return value/60/60; 
} 
milliToHours (totalTime); 
// howerver it returns NaN in console 
+1

Avez-vous vérifié que 'video.duration' donne une valeur réelle? –

+0

Oui, cela donne une valeur en virgule flottante Je reçois 39856.6757 –

+2

Peut-être que vous l'appelez trop tôt? c'est-à-dire avant que la vidéo soit complètement chargée. Vous devrez peut-être fournir un [exemple minimal, complet et vérifiable] (https://stackoverflow.com/help/mcve) –

Répondre

0

video.duration doit être non définie à l'exécution de la fonction. Ajoutez une instruction console.log(value); à votre fonction.

var totalTime; 
 
var milliToHours = function(value) { 
 
    console.log(value); 
 
    return value/60/60; 
 
} 
 
console.log(milliToHours(totalTime)); // undefined => NaN 
 
totalTime = null; 
 
console.log(milliToHours(totalTime)); // null => 0 
 
totalTime = 39856.6757; 
 
console.log(milliToHours(totalTime)); // 39856.6757 => 11.071298805555555

+0

oui c'est video.duration son indéfini mais quand j'utilise la valeur en virgule flottante comme vous l'avez fait dans la dernière ligne ça marche bien –

+0

Quand est-ce que viideo.duration a une valeur? Y a-t-il un événement (c'est-à-dire une vidéo chargée) qui est déclenché pour que vous sachiez quand vous pouvez utiliser votre fonction «milliToHours»? Sans plus de détails ou de code, il n'y a pas beaucoup plus d'aide qui peut être fournie. –