2017-02-17 5 views
-6

私はコード戦争をしています。なぜ私はそれが動作したいので、以下のコードが機能しないのか理解できません。Javascript if statement 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"は真です。整数に試してみてください。