javascript - 如何对字母数字字符串值进行排序?

标签 javascript sorting

我在这里使用 javascript 对字母数字字符串值进行排序。但它单独对字符串进行排序。我需要的是从字符串中拆分数值并对数值进行排序。这是我的代码

 function sortUnorderedList(ul, sortDescending) {
        if (typeof ul == "string")
            ul = document.getElementById(ul);

        var lis = ul.getElementsByTagName("li");
        var vals = [];
        for (var i = 0, l = lis.length; i < l; i++)
            vals.push(lis[i].innerHTML);

        vals.sort();

        if (sortDescending)
            vals.reverse();

        for (var i = 0, l = lis.length; i < l; i++)
            lis[i].innerHTML = vals[i];
    }

有什么建议吗?

编辑:当前结果

PPG 101
PPG 102
PPG 57
PPG 58
PPG 99

预期结果:

PPG 57
PPG 58
PPG 99
PPG 101
PPG 102

最佳答案

要执行数字排序,您必须在调用排序方法时将函数作为参数传递。

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

参见 http://www.javascriptkit.com/javatutors/arraysort.shtml了解更多详情

关于javascript - 如何对字母数字字符串值进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11930906/

相关文章:

c++ - 引用类的成员函数的正确方法是什么?

c# - 使用字符和数字对 List<> 进行排序

javascript - Minimax Alpha Beta Pruning Algorithm 解决 Tic Tac Toe(10x10 棋盘)需要花费太多时间

javascript - 如何在本地开发 npm 模块

javascript - 通过服务在 Controller 之间共享变量

javascript - 组合 &lt;input type ='text' > 和 <select>

c++ - 对 vector 进行排序 C++

javascript - 在javascript中仅连接二维数组的一个元素

r - 如何反转R中数据帧的顺序

ios - swift:从 JSON 解析的 Alphabetiz 数据