比较来自代码新闻的javascript中的权限练习

时间:2015-07-31 13:20:10

标签: javascript

我正在为Codewars做这个练习。

以下是说明: 你必须建立一个比较权力的函数,如果第一个成员更大则返回-1,如果它们相等则返回0,否则返回1;
比较的权力将以[基数,指数]格式提供:

comparePowers([2,10],[2,15])=== 1
comparePowers([2,10],[3,10])=== 1
comparePowers([2,10],[2,10])=== 0
comparePowers([3,9],[5,6])=== - 1个
comparePowers([7,7],[5,8])=== - 1

这是我的代码,但它说这是错误的解决方案。我不知道为什么它无效。



function comparePowers(n1,n2){
  //your code here
  var one = Math.log(n1[0]) * n1[1];
  var two = Math.log(n2[0]) * n2[1];
  if (one > two)           return -1;
  else if (one < two)      return 1;
  else if (one == two)     return 0;
}

comparePowers([2,10],[2,15]) //1);
comparePowers([2,10],[3,10]) //1);
comparePowers([2,10],[2,10]) //0);
comparePowers([3,9],[5,6]) //-1);
comparePowers([7,7],[5,8]) //-1);
&#13;
&#13;
&#13;

成功的答案如下:

&#13;
&#13;
function comparePowers(n1,n2){
    if( n1[0] === n2[0])
      return ((n2[1] > n1[1]) ? 1 : (( n2[1] < n1[1] ) ? -1 : 0));
    if( n1[1] === n2[1])
      return ((n2[0] > n1[0]) ? 1 : (( n2[0] < n1[0] ) ? -1 : 0));

    var p1 = Math.log(n1[0]) * n1[1];
    var p2 = Math.log(n2[0]) * n2[1];
    return ((p2 > p1) ? 1 : (( p2 < p1 ) ? -1 : 0));
}
&#13;
&#13;
&#13;

0 个答案:

没有答案