2017-06-05 50 views
2

enter image description here汗學院:JavaScript的循環時間太長運行

我在算法上通讀可汗學院課程。我在https://www.khanacademy.org/computing/computer-science/algorithms/sorting-algorithms/p/challenge-find-minimum-in-subarray

代碼挑戰應該循環遍歷數組查找並返回子數組中的最小數字。我寫了我認爲應該可以工作的代碼,但是我在標題中遇到了錯誤。爲什麼?

var indexOfMinimum = function(array, startIndex) { 
    // Set initial values for minValue and minIndex, 
    // based on the leftmost entry in the subarray: 
    var minValue = array[startIndex]; 
    var minIndex = startIndex; 
    var i = minIndex + 1; 
    for(i ; array.length ; i+1) { 
     if(array[i]< minValue) { 
      minIndex = i ; 
      minValue = array[i]; 
     } 
    } 

    // Loop over items starting with startIndex, 
    // updating minValue and minIndex as needed: 

    return minIndex; 
}; 

var array = [18, 6, 66, 44, 9, 22, 14]; 
var index = indexOfMinimum(array, 2); 
+1

'array.length'(假設數組不爲空)將評估爲真。意思是你的'for'循環永遠不會退出。 –

回答

4

您的for循環的第二部分需要實際測試某些內容。現在它是一個無限循環,因爲它的東西是總是如此

這應該修復它:

for(i ; i < array.length ; i++) { 
if(array[i]< minValue) { 
    minIndex = i ; 
    minValue = array[i]; 
    } 
} 
+1

'i + 1'需要'i + = 1' –

+0

你是對的,抱歉,我一開始沒有看到,我編輯它來修復它。 – Jeanze