2014-09-13 47 views
1

我想用asc對JavaScript中的數組進行排序。在使用排序方法後,結果如下所示。如何在Javascript中像C#一樣排序數組?

[ '123, '12', '1A1', '1A', '1a', 'A1', 'A2', 'AB', 'A', 'Ab', 'a1', 'a2', 'aB', 'ab' ]

當我使用排序Array.Sort()通過C#,結果如下圖所示。

{ "12", "123", "1a", "1A", "1A1", "A", "a1", "A1", "a2", "A2", "ab", "aB", "Ab", "AB" }

其實C#的排序方式是我想要的,所以如何實現它在JavaScript?有沒有人完成過這個任務?比較函數真的很感謝。

+0

這是爲什麼下投票,結果答案是選票。不明白,寫一個新功能並不是問題的答案。 – mybirthname 2014-09-13 10:05:10

+0

@ T.J.Crowder他指定的順序實際上是C#Array.Sort提供的。 – 2014-09-13 10:13:51

+0

你注意到A是單個字符嗎?我想這樣C#在排序方法裏面有特殊的操作。假設C#排序是一個預期的結果,現在我想用JavaScript來匹配它。 – Damon 2014-09-13 10:14:54

回答

1

Array.prototype.sort默認使用字符串比較。看來你要比較不區分大小寫 - 你可以在使用toLowerCase比較函數傳遞(但.toLocaleLowerCase的差異要小心!):

a.sort(function(a, b) { 
    a = a.toLowerCase(); b = b.toLowerCase(); 
    return a > b ? 1 : a < b ? -1 : 0; 
});