2013-02-11 58 views
3

JavaScripts中的SORT函數在某些情況下無法返回正確答案。在javascripts中排序的奇怪結果

我用http://jsconsole.com測試一些例子:

[2, 10].sort()[2, 10] 
[3, 10].sort()[10, 3] 
[9, 10].sort()[10, 9] 
[10, 11].sort()[10, 11] 

我與Firefox和Chrome測試它的Windows XP,Windows 2008中。

+0

的Javascript =爪哇 – 2013-02-11 05:37:05

+0

可能重複[如何排序在JavaScript排序方法號](http://stackoverflow.com/questions/4576903/how -to-sort-number-in-javascript-sort-method) – 2013-02-11 05:41:05

回答

10

我認爲Java和JavaScript混淆了,但它們是完全不同的編程語言。我幾乎肯定代碼是JavaScript。

JavaScript的默認排序功能按字符串值排序,而不是整數值。您必須手動選擇後者,但它是非常簡單的:

[3,10].sort(function (a, b) { return a - b; }); 
+0

謝謝它現在適用於我。 – Bangyou 2013-02-11 05:43:40

1

老實說,我沒有JS經驗,但它似乎是按字符串值排序。 IE:1是小於9的字符,所以以1開頭的任何東西(甚至是11811891)都會比'9'更少。