【问题标题】:How the sorting method of integer array works ? JS [duplicate]整数数组的排序方法是如何工作的? JS [重复]
【发布时间】:2015-02-28 05:36:50
【问题描述】:
var anArray = [ 5, 4, 8 , 1, 3] ; 

anArray.sort(function (a,b){return a - b}); 

1) 谁能告诉我 JavaScript 将如何使用作为参数传递的函数执行排序方法?

  • 它会将 5 与 4 进行比较,因为它是正数,所以 4 将在 5 之前。然后它将 5 与所有其他数字进行比较,但 1 和 3 也小于 5。那么 java 脚本如何知道要在哪个位置把它们放在5之前?

  • 然后它将 4 与其他数字进行比较,将 8 与其他数字进行比较,等等... java脚本如何做到这一点?我想用笔和纸来做。

2) 为什么作为参数传递的函数是无名的?

谢谢。

【问题讨论】:

标签: javascript arrays sorting integer


【解决方案1】:
  1. 具体如何调用比较器函数(即传入的值的序列)并未由语言规范定义。它完全取决于特定的 JavaScript 实现和(可能)被排序的数组中的值。可以说,排序算法在要比较两个数字时调用您的函数,就是这样。

    该函数应返回一个负值、零或正值,表明排序算法的排序两个数字应该是第一个在前,或者可以在前,或者第二个应该在前。一种快速的方法是从第一个数字中减去第二个数字。

  2. 示例代码中的函数是匿名函数。它不需要名称,因为由于函数调用本身,它将绑定到接收函数中的符号。如果你愿意,你可以给函数命名。

【讨论】: