2015-11-03 76 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); 

希望这会有帮助