【问题标题】:Javascript Sorting NumbersJavascript 排序数字
【发布时间】:2016-02-14 02:22:17
【问题描述】:

我正在尝试使用 javascript 以降序对数字进行排序。它适用于字符串,但是当我使用数字时,它会给我错误的结果。

以下是代码:

<html>
<head>
<script language ="Javascript">
function sort(form)
{
var a1=form.first.value
var b1 = form.second.value
var c1 =form.third.value
var a2= parseFloat(a1)
var b2=parseFloat(b1)
var c2= parseFloat(c1)
var rank_the_numbers = [a2,b2,c2]
rank_the_numbers.sort(function(a, b){return a-b})


document.writeln("The largest number is: "+rank_the_numbers[0])
document.writeln("<br> The second largest number is: " +rank_the_numbers[1])
 document.writeln("<br> The smallest number is: " +rank_the_numbers[2])
 document.writeln(rank_the_numbers)
}
</script>
</head>
<form onSubmit="return sort(this)">
Enter any three numbers: <br>
<input type="text" name="first" size=5><br>
<input type="text" name="second"size=5><br>
<input type="text" name="third" size=5><br>
<input type="submit" value= "Rank the numbers!" onClick = "sort(this.form)">
</form>
</body>
</html>

我应该进行哪些更改才能使代码也能正确运行数字。我浏览了几篇关于stackoverflow的文章并使用了(function(a,b){return a-b}),但它也不起作用。

【问题讨论】:

    标签: javascript arrays sorting ranking


    【解决方案1】:

    降序

    排序应该是

    rank_the_numbers.sort(function (a, b) {
        return b - a;
    });
    

    JSFIDDLE

    【讨论】:

      【解决方案2】:

      Javascript 内置排序功能按字母顺序排序

      const numbers = [1,12,5,13,2,15,4,11,3,10];
      

      所以直接对数字进行排序会返回按字母排序的数组

      const sortedAlphabet = numbers.sort();
      // Output: [1, 10, 11, 12, 13, 15, 2, 3, 4, 5]
      

      如果您想按升序对数字进行排序,这就是这样做的方法

      const sortedNumbers = numbers.sort((a, b) => a-b);
      // Output: [1, 2, 3, 4, 5, 10, 11, 12, 13, 15]
      

      如果您想按降序对数字进行排序,这就是这样做的方法

      const sortedNumbers = numbers.sort((a, b) => b-a);
      // Output: [15, 13, 12, 11, 10, 5, 4, 3, 2, 1]
      

      【讨论】:

        猜你喜欢
        • 2014-09-30
        • 2023-03-31
        • 1970-01-01
        • 2013-02-09
        • 2018-08-01
        • 2021-04-21
        • 2021-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多