2017-04-09 63 views
-1

嗨我正在做一个反应测试游戏,我希望能够始终显示最快的时间。因为最快的时间总是与最新的时间相匹配,所以我遇到了麻烦。比较2次并显示最快 - Javascript

这是相关的一段代码。

var timeTaken = (end - start)/1000; 

       var bestTime =""; 

       document.getElementById("timeTaken").innerHTML = timeTaken + "s"; 

       if (bestTime =="") { 

        bestTime = timeTaken; 

        document.getElementById("quickestTime").innerHTML = bestTime + "s"; 

       } 

       if (timeTaken < bestTime) { 

        bestTime = timeTaken; 

        document.getElementById("quickestTime").innerHTML = bestTime + "s"; 
       } 

感谢您的帮助。

+1

你比较字符串,这意味着你比较他们如何进行词法排序(例如,“b”>“a”)。要正确比较,您必须先将字符串转换为数字。 –

+0

,因为'bestTime'总是等于'“”' – epascarello

+0

@ M.Prokhorov我看不到字符串比较。 – epascarello

回答

1

每次运行代码时,都会重置bestTime并将其视为timeTaken。

var bestTime =""; <-- sets best time to empty 
if (bestTime =="") { <--checks to see it if it is "" 
    bestTime = timeTaken; <-- will set it to the current time 

所以,你需要定义什么功能,你在呼唤这样你就不会每次代码运行时将其覆盖之外bestTime。

0
var quickestTime = ""; 

function bestTime (newTime) { 

    if (quickestTime === "" || newTime < quickestTime) { 
    quickestTime = newTime; 
    document.getElementById("bestTime").innerHTML = quickestTime; 
    } 

} 

newTime是最新播放时间。
quickestTime是前几轮的最快时间。
quickestTime === ""是第一次玩。由于没有以前的quickestTime,所以空字符串被替换为newTime
newTime < quickestTimequickestTime比较newTime并且如果它是quickestTimequickestTime被分配给变量newTime

+2

请提供相关说明。 –