2017-02-17 26 views
-6

我正在做代碼大戰,我不明白爲什麼下面的代碼不工作,因爲我想它的工作。Javascript if if 63> 542爲真

最好的是,如果我刪除63它的作品。

function low(numbers){ 
     var arr = numbers.split(" ") 
     var highest = numbers[0]; 
     for(i = 0; i < arr.length; i++){ 
     if(arr[i] > highest){ 
      console.log(arr[i] +">"+ highest) 
      console.log(arr[i] > highest) 
      highest = arr[i] 
     } 
     } 
     return highest 
    } 

    low("4 5 29 4 0 -214 542 -64 1 -3 3 4 63 -6"); 
+2

你比較字符串,而不是數字。 – zzzzBov

+0

您在比較字符串 –

+0

按字母順序,「6」高於「5」。 – David

回答

0

必須使用parseInt函數:

function low(numbers){ 
 
     var arr = numbers.split(" ") 
 
     var highest = parseInt(numbers[0]); 
 
     for(i = 0; i < arr.length; i++){ 
 
     if(parseInt(arr[i]) > highest){ 
 
      console.log(arr[i] +">"+ highest) 
 
      console.log(parseInt(arr[i]) > highest) 
 
      highest = parseInt(arr[i]) 
 
     } 
 
     } 
 
     alert(highest) 
 
     return highest 
 
    } 
 

 
    low("4 5 29 4 0 -214 542 -64 1 -3 3 4 63 -6");

+0

我寫了必須改變的部分。 –

0

您正在比較字符串。 「63」>「542」爲真。嘗試並轉換爲整數。