2015-11-03 100 views
0

我有一些比較兩個字符串並返回最低值的代碼,然後將該值與letterGrade進行比較,以查看哪一個最低,然後返回兩者中較高的值。我的問題是,我有問題得到此代碼使用JavaScript工作。 Javascript代碼:使用compareTo將java翻譯成javascript代碼

var result1 = (finalexam.getletterGrade().compareTo(midexam.getletterGrade())); 
    var result2 = " "; 
    if (result1 == 0) 
    { 
     result2 = midexam.getletterGrade(); 
    } 
    else if (result1 < 0) 
    { 
     result2 = midexam.getletterGrade(); 
    } 
    else if (result1 > 0) 
    { 
     result2 = finalexam.getletterGrade(); 
    } 
    var result3 = (letterGrade.compareTo(result2)); 
    if (result3 < 0) 
    { 
     result2 = letterGrade; 
    } 
+3

如果你想修復你的Javascript;發佈Javascript,而不是Java。 –

+0

你在JavaScript中嘗試過什麼?另外請注意,JavaScript和Java不是密切相關的語言,複製和粘貼不起作用。 –

+0

我用JavaScript代碼編輯了我的問題。我已經嘗試localeCompare哪些不起作用。 CompareTo是我知道解決這個問題的唯一方法,並且無法讓它在JavaScript中工作。 – littlemisschik

回答

0

的JavaScript int沒有三元compareTo像Java。你可以寫一個。喜歡的東西,

function compare(a, b) { 
    if (a < b) { 
     return -1; 
    } else if (a > b) { 
     return 1; 
    } 
    return 0; 
} 

然後改變你的來電compareTo調用它。像

var result1 = compare(finalexam.getletterGrade(), midexam.getletterGrade()); 

var result3 = compare(letterGrade, result2); 
0

我的問題,什麼是我們的後端代碼排序利用Java的的compareTo我們的內容,因爲一個誤會,我試圖重寫的compareTo在JavaScript中,而修復結束了的東西完全不同的,但是這可能會幫助您解決問題

String.prototype.compareTo = function (anotherString) { 
    var len1 = this.length; 
    var len2 = anotherString.length; 
    var n = Math.min(len1,len2); //If the lengths will always be the same skip n to be assigned to len1 only, get rid of len2 
    var v1 = this; 
    var v2= new String(anotherString); 
    // You could instead set these vars i and j to passed in offsets if you want to start sorting from, in which case else case will be possible, or only the first i == j if statement will always be run 
    var i = 0; 
    var j = 0; 

    if (i == j) { 
     var k = i; 
     var lim = n + i; 
     while (k < lim) { 
      var c1 = v1[k]; 
      var c2 = v2[k]; 
      if (c1 != c2) { 
       var returnVal = c1.charCodeAt(0) - c2.charCodeAt(0); 
       if (returnVal > 0) 
        return 1; 
       else 
        return -1 
       return 0; 
      } 
      k++; 
     } 
    } else { 
     while (n-- != 0) { 
      var c1 = v1[i++]; 
      var c2 = v2[j++]; 
      if (c1 != c2) { 
       var returnVal = c1.charCodeAt(0) - c2.charCodeAt(0); 
       if (returnVal > 0) 
        return 1; 
       else 
        return -1 
       return 0; 
      } 
     } 
    } 
    return len1 - len2; 
    //return 0; //if lengths are always the same, comment the above line, uncomment this line 
} 

這樣稱呼它下面

var a = "whatever"; 
var b = "however"; 
a.compareTo(b); 

希望這會有幫助