3

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 上对其进行了测试。

4

2 回答 2

10

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

JavaScript 的默认排序功能按字符串值排序,而不是整数值。您必须手动执行后者,但这非常简单:

[3,10].sort(function (a, b) { return a - b; });
于 2013-02-11T05:37:26.717 回答
1

老实说,我没有 JS 经验,但它似乎是按字符串值排序的。IE:1 是比 9 小的字符,所以任何以 1 开头的字符(甚至是 11811891)都将“小于”9。

于 2013-02-11T05:37:02.963 回答