2017-04-09 49 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

請提供相關說明。 –