【问题标题】:Strange results of sort in javascriptsjavascript中奇怪的排序结果
【发布时间】:2013-01-26 05:16:45
【问题描述】:

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 测试了它。

【问题讨论】:

标签: javascript sorting


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 2017-01-07
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多