2013-02-11 63 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'更少。