如何根据字符串中的数字对字符串进行排序,以(.)分隔

BaD*_*gEl 5 javascript sorting

嗨,我想根据其中的数字对字符串进行排序,例如

  • 1.1.act2
  • 13.1.2.1.act3
  • 2.1.4.act56
  • 1.3.actorg
  • 3.1.3.args
  • 13.1.3.4.acr

我想以某种方式这样做

  • 1.1.act2
  • 1.3.actorg
  • 2.1.4.act56
  • 3.1.3.args
  • 13.1.2.1.act3
  • 13.1.3.4.acry

我如何在JavaScript中实现它?

Con*_*ius 3

您可以将该Arrays sort方法与自定义迭代器函数一起使用。例如:

mylist = ["1.1.act2", "13.1.2.1.act3", "2.1.4.act56", "1.3.actorg", "3.1.3.args", "13.1.3.4.acr"];

mylist.sort(function(a, b) {
    a = a.split("."); b = b.split(".");
    var parts = Math.min(a.length, b.length);
    for(var i = 0; i < parts; ++i) {
        var numA = parseInt(a[i]); var numB = parseInt(b[i]);
        if (numA != numB)
            return numA > numB;
    }
});
Run Code Online (Sandbox Code Playgroud)

这是一个存根,未经测试,但我想你明白我的意思