对包含数字的JavaScript String Array进行排序

wil*_*oup 4 javascript arrays sorting string numbers

我在JavaScript中有一个包含以下内容的数组:

  • ["值1","值5"."价值10","价值11"];

我将如何排序此数组,使其不显示如下:

  • ["值1","值10"."价值11","价值5"];

但是:

  • ["值1","值5"."价值10","价值11"];

任何帮助都会很棒.

Mar*_*son 9

您需要从字符串中提取数值并根据这些值进行排序,就像vlood所说的那样.例如,尝试以下代码:

function mySort(arr)
{
    var regex = /Value\s([0-9]+)/;

    function map(str) {
        return Number(regex.exec(str)[1]);
    }

    return arr
    .sort(
        function (a,b) {
            var av = map(a), bv = map(b);
            return av < bv ? -1 : av > bv ? 1 : 0;
        })
}

mySort(["Value 1", "Value 10", "Value 11", "Value 5"]);
Run Code Online (Sandbox Code Playgroud)


vlo*_*ood 1

如果您热衷于自己编写,则可以使用正则表达式解析这些项​​目并比较第二部分。那些会匹配类似的东西

“值[1-9][0-9]*”