如何根据JavaScript中的整数对字符串进行排序?

时间:2017-10-30 16:01:31

标签: javascript string sorting

//这是一个根据整数对字符串进行排序的函数

function order(words) {
    var str = words.split(' ');
    var newArr = [];
    console.log(str);
    console.log('----');
    for (var i = 0; i < str.length; i++) {
        var sorted = str[i].split('').sort();
        newArr.push(sorted);
    }
    console.log(newArr);
    var newar = [];
    for (var j = 0; j < newArr.length; j++) {
        newar += newArr[j].join('') + ' ';
    }
    console.log(newar.trim().split(' ').sort().join(' '));
}
order("is2 Thi1s T4est 3a");

//结果应为:Thi1s is2 3a T4est

2 个答案:

答案 0 :(得分:6)

假设,只有一个数字在分割字符串中,那么您可以匹配一个数字并将其用于排序。

function order(string) {
    function getNumber(s) { return +s.match(/\d+/)[0] || 0; }

    return string
        .split(' ')
        .sort(function (a, b) { return getNumber(a) - getNumber(b); })
        .join(' ');
}

console.log(order("is2 Thi1s T4est 3a"));

答案 1 :(得分:2)

在一行中:

function order(words) {
    return words
        .split(' ')
        .sort((a, b) => a.match(/\d+/) - b.match(/\d+/))
        .join(' ');
}