我有一個包含數字和字符串數組:我需要用數字來把它們按升序排列排序的字母數字陣列
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