JavaScript 正确排序数字?

标签 javascript sorting

我正在尝试对 3 个数字的组进行排序,但是 JS 排序函数似乎没有以常规方式进行排序(显然是按字典顺序排序)。我还能如何解决这个问题?我想不出除了一大堆嵌套的 if 语句或开关之外的替代方案。

我目前的实现是:

var medianthree = function(param){
    var values = param.split(" ");
    var output = [];
    for(var i = 1; i < (values[0]*3); i+=3){
        var temparr = [];
        temparr.push(values[i], values[i+1], values[i+2]);
        temparr.sort();
        console.log(temparr);
        output.push(temparr[1]);
    }
    output = output.join(" ");
    console.log(output);
}

随着输入:

medianthree("1 8 808 708")

哪个返回:

["708", "8", "808"] //the temparray log - used to check sorting
["8"] //the output - should be 708

最佳答案

默认情况下,sort 方法按字母顺序对元素进行排序 http://jsfiddle.net/7s5m9/4/

 function sortNumber(a,b) {
    return parseInt(a) - parseInt(b);
}

var numArray = ["708", "8", "808"];
numArray.sort(sortNumber);
alert(numArray[0] + ',' +  numArray[1] + ',' +  numArray[2] );

更新了您的字符串编号

关于JavaScript 正确排序数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909402/

相关文章:

java - ArrayList 根据对象属性排序

ios - iOS 上的 sortedArrayWithSelector 和 NSDictionnary

java - 从两个排序数组的交替元素生成所有可能的排序数组

javascript - 如何动态访问 angularjs 指令中的属性?

javascript - jQuery AJAX 和 ASP.NET

javascript - 如何运行我从 github 导入的这个 Node 应用程序?

javascript - 向下滚动时,Chrome(在 Android 上)地址栏不会消失

C 程序 需要帮助修复我的单词排序程序代码

php - 按过期日期对结果排序,过期在最后

javascript - 打开应用程序时自动启用蓝牙可发现性?