0

私はこの変数を持っています:

var hours = "lu9,lu10,lu11,ma9,ma10,ma11,mi9,mi10,mi11";

次に、同じ値 でアラートを表示する必要がありますが、順序は次のとおりです。

lu9,ma9,mi9,lu10,ma10,mi10,lu11,ma11,mi11

私はこのコードを使用していますが、動作させることができません:

var hours = "lu9,lu10,lu11,ma9,ma10,ma11,mi9,mi10,mi11";

myExit = hours.slice().sort(function (a, b) {
    var reg = /\d+/;
    var num = 2 * (+(0 + a.match(reg)) - +(0 + b.match(reg)));
    var str = a > b ? 1 : a < b ? -1 : 0;
    return num + str;
});

alert (myExit);

それを行う方法はありますか?

ありがとうございました!

ご挨拶。

4

1 に答える 1

2

とても近い。.slice()に変更する必要がありました.split(',')

var hours = "lu9,lu10,lu11,ma9,ma10,ma11,mi9,mi10,mi11";

myExit = hours.split(',').sort(function (a, b) {
    var reg = /\d+/;
    var num = 2 * (+(0 + a.match(reg)) - +(0 + b.match(reg)));
    var str = a > b ? 1 : a < b ? -1 : 0;
    return num + str;
});

alert(myExit);

補完的な jsFiddle

于 2013-08-21T22:26:01.870 に答える