我有一个包含数字和字符串数组:我需要用数字来把它们按升序排列排序的字母数字阵列
disorderedArray = ["74783 Banana", "38903 Orange", "94859 Apple"];
。我发现一个例子,降序运行良好Sort Alphanumeric String Descending 但是,我似乎无法更改返回行使数组升序。我试图把arr.reverse();在返回线之后,但是这看起来有些ha and,而且不管用。我也改变了回归线中的>和<符号,但我开始得到疯狂的结果。
function sort() {
var arr=disorderedArray;
arr.sort(function(a,b){
a=a.split(" ");
b=b.split(" ");
var an=parseInt(a[0],10);
var bn=parseInt(b[0],10);
return an<bn?1:(an>bn?-1:(a[1]<b[1]?-1:(a[1]>b[1]?1:0)));
arr.reverse();
});
console.log(arr);
}
'arr.reverse()'不会因为你在之前使用'return'而被击中。 – 2014-12-19 10:44:44
可能的重复(http://stackoverflow.com/a/2802489/2749470)使用fu链接(http://www.davekoelle.com/files/alphanum.js) – 2014-12-19 10:47:15
@aduch:默认排序将值作为文本进行比较,所以例如'9 abc'会出现在177723773 abc后面。 – Guffa 2014-12-19 10:52:25