按整数排序字符串数组(这是第一个字符)

时间:2018-03-25 18:25:43

标签: javascript arrays sorting

我想知道如何解决这个问题的简单方法。

我有一个字符串数组,如下所示:

Array [ "15 Some string", "16 Some string", "13 Some string", "11 Some string", "6 Some string", "8 Some string", "12 Some string", "5 Some string", "9 Some string", "10 Some string" ]

我想用整数来排序,这是这个数组的第一个字符(并且每次都是),使用 javascript 。我想要的输出是:

Array [ "16 Some string", "15 Some string", "13 Some string", "12 Some string", "11 Some string", "10 Some string", "9 Some string", "8 Some string", "6 Some string", "5 Some string" ]

任何人都可以提供帮助吗?

3 个答案:

答案 0 :(得分:2)

如何简单地将字符串值解析为数字

var array = ["15 Some string", "16 Some string", "13 Some string", "11 Some string", "6 Some string", "8 Some string", "12 Some string", "5 Some string", "9 Some string", "10 Some string"];

array.sort((a, b) => parseFloat(b) - parseFloat(a));

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:1)

使用正则表达式获取数字,然后比较数字。



const array = [ "15 Some string", "16 Some string", "13 Some string", "11 Some string", "6 Some string", "8 Some string", "12 Some string", "5 Some string", "9 Some string", "10 Some string" ];

array.sort((a,b) => b.match(/\d+/g) - a.match(/\d+/g));

console.log(array);




答案 2 :(得分:1)

您可以匹配起始整数值并按其增量排序。

function getN(s) {
    return s.match(/^\d+/);
}

var array = ["15 Some string", "16 Some string", "13 Some string", "11 Some string", "6 Some string", "8 Some string", "12 Some string", "5 Some string", "9 Some string", "10 Some string"];

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

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }