【问题标题】:Sort function in JavaScript does not give correct output for some cases? [duplicate]JavaScript 中的排序功能在某些情况下不能提供正确的输出? [复制]
【发布时间】:2019-02-17 03:06:39
【问题描述】:

我尝试使用排序功能来排列项目,以便在数字数组中找到最大的元素。 在 Chrome 中,检查元素并打开控制台。

>>var a = [1000, 1001, 857, 1]
>>undefined
>>a.sort()
>>(4) [1, 1000, 1001, 857] // no patern found.

为什么数字没有像在其他情况下那样正确排序:

>>var b = [13, 27, 18, 26];
>>undefined
>>b.sort()
>>(4) [13, 18, 26, 27] // here the numbers are in ascending order.

【问题讨论】:

标签: javascript arrays sorting


【解决方案1】:

这是因为默认排序顺序将数组的元素视为文本,而不是数字。

默认排序顺序是根据字符串 Unicode 码位。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

【讨论】:

  • 这很好理解。您是否建议我将无法使用此排序功能而必须自己编写?在这种情况下,排序功能有什么用?
  • 这只是一个默认值,您可以提供自己的函数,该函数接受两个元素并决定应该将哪个元素放在数组的第一个位置。该文档非常详尽地解释了该函数的行为方式。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
猜你喜欢
  • 2019-08-09
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-27
  • 2012-11-18
  • 1970-01-01
相关资源
最近更新 更多