gpt4 book ai didi

javascript - 先按字母排序,再按数字排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:05 26 4
gpt4 key购买 nike

我必须对包含日期和单词的数组进行排序。所有的数据都被认为是字符串

INPUT
data[4,a,3,a,a,2]

OUTPUT(ascending expected)
data[a,a,a,2,3,4]

但在升序时,它首先对数字排序,然后对日期排序,反之亦然。这与我想要实现的目标相反。我如何让它在升序时先对字母排序,在降序时先对数字排序

最佳答案

测试第一个字符是否为数字。

如果比较的两者相同,则定期比较,否则先移动非数字:

var data = ["2020-04-07",
"2021-06-30",
"2019-12-30",
"date passed",
"date passed",
"date passed"];
function specialSortAsc(a, b) {
var isNumberRegEx = /^\d/;
if (isNumberRegEx.test(a[0]) == isNumberRegEx.test(b[0])) {
return a.localeCompare(b);
}
else {
return isNumberRegEx.test(a[0]) ? 1 : -1;
}
}
function specialSortDsc(a, b) {
var isNumberRegEx = /^\d/;
if (isNumberRegEx.test(a[0]) == isNumberRegEx.test(b[0])) {
return b.localeCompare(a);
}
else {
return isNumberRegEx.test(a[0]) ? -1 : 1;
}
}
console.log(data.sort(specialSortAsc));
console.log(data.sort(specialSortDsc));

关于javascript - 先按字母排序,再按数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57493054/

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