gpt4 book ai didi

javascript - 使用特定格式对字符串进行排序

转载 作者:行者123 更新时间:2023-11-28 20:20:36 24 4
gpt4 key购买 nike

我需要按如下方式订购字符串:

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

为此,我有以下代码:

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

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);

该代码工作正常,但问题是字符串按字母顺序排序:

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

“do9”应该是最后一个,所以:

lu9,ma9,mi9,do9...

这个想法是根据西类牙语中的星期几对这个变量进行排序:

lu = lunes

ma = martes

mi = miercoles

ju = jueves

vi = viernes

sa = sabado

do = domingo

如何使用我的代码?

最佳答案

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

var arrIndex = {'lu' : 1,'ma':2,'mi':3,'ju':4,'vi':5,'sa':6,'do':7};


myExit = hours.split(',').sort(function (a, b) {
var reg = /\d+/;
var num = a.match(reg) - b.match(reg);
var strreg = /[a-zA-Z]*/;
var str = arrIndex[a.match(strreg)[0]] - arrIndex [ b.match(strreg)[0]];
return num * 20 + str;
});

alert(myExit);
console.log(myExit);

输出是:

["lu9", "ma9", "mi9", "do9", "lu10", "ma10", "mi10", "lu11", "ma11", "mi11"] 

关于javascript - 使用特定格式对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18390680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com