gpt4 book ai didi

actionscript-3 - As3 同时按字母和数字排序

转载 作者:行者123 更新时间:2023-12-04 20:12:02 26 4
gpt4 key购买 nike

所以我有一个排序方法,旨在按字母顺序对值进行排序,几乎在所有情况下都很好用:

function alphabetical(name1, name2):int { 
if (name1 < name2){
return -1;
} else if (name1 > name2){
return 1;
}else {
return 0;
};
};

问题是,当标题中包含数字时。

例如:
['abc 8','abc 1','abc 10']

会排序
['abc 1','abc 10','abc 8']

但是我需要做的是让它按字母顺序排序但是当它遇到一个数字时会考虑一个数值,因此排序会返回
['abc 1','abc 8'.'abc 10']

我希望有某种现有的正则表达式或算法可以做到这一点,但恐怕我对要搜索的内容一无所知。我所有的排序搜索都是按字母顺序或数字顺序进行的,而不是两者兼而有之。

非常感谢!

最佳答案

我找到了一个可以转换为 AS3 的 JavaScript 解决方案:Sort mixed alpha/numeric array .

解决方案如下所示:

var reA = /[^a-zA-Z]/g;
var reN = /[^0-9]/g;
function sortAlphaNum(a,b) {
var aA = a.replace(reA, "");
var bA = b.replace(reA, "");
if(aA === bA) {
var aN = parseInt(a.replace(reN, ""), 10);
var bN = parseInt(b.replace(reN, ""), 10);
return aN === bN ? 0 : aN > bN ? 1 : -1;
} else {
return aA > bA ? 1 : -1;
}
}

var arr = ['abc 8','abc 1','abc 10'];
arr.sort(sortAlphaNum);

trace(arr); // abc 1,abc 8,abc 10

关于actionscript-3 - As3 同时按字母和数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16067374/

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