在javascript中排序的奇怪结果

时间:2013-02-11 05:35:13

标签: javascript sorting

javascripts中的SORT函数在某些情况下无法返回正确的答案。

我使用http://jsconsole.com来测试一些例子:

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

我在windows xp,windows 2008上使用firefox和chrome进行了测试。

2 个答案:

答案 0 :(得分:10)

我认为您将Java与JavaScript混淆,但它们是完全不同的编程语言。我几乎肯定代码是JavaScript。

JavaScript的默认排序功能按字符串值排序,而不是整数值。你必须手动完成后者,但这很简单:

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

答案 1 :(得分:1)

老实说,我没有JS经验,但似乎是按字符串值排序。 IE:1是一个比9更低的字符,所以任何以1开头的东西(甚至是11811891)都会少于'比9.