我有这个变量:
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);
知道该怎么做吗?
谢谢!
问候。
答案 0 :(得分: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