Javascript 整数数组的排序方法是如何工作的?JS

Javascript 整数数组的排序方法是如何工作的?JS,javascript,arrays,sorting,integer,Javascript,Arrays,Sorting,Integer,1) 有人能告诉我JavaScript将如何使用作为参数传递的函数执行sort方法吗 它会比较5和4,因为它是正的,4在5之前。然后它会将5与其他数字进行比较,但1和3也小于5。那么java脚本如何知道将它们放在5之前的位置呢 然后将4与其他数字进行比较,8与其他数字进行比较,等等。。。 java脚本是如何做到这一点的?我想用笔和纸做这件事 2) 为什么作为参数传递的函数是匿名的 多谢各位 比较器函数的调用方式(即传入的值序列)并不由语言规范定义。它完全取决于特定的JavaScript实现,

1) 有人能告诉我JavaScript将如何使用作为参数传递的函数执行sort方法吗

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

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

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

多谢各位

  • 比较器函数的调用方式(即传入的值序列)并不由语言规范定义。它完全取决于特定的JavaScript实现,并且(可能)取决于正在排序的数组中的值。只需说明排序算法在需要比较两个数字时调用函数即可。

    该函数应返回一个负值、零值或正值,这表明两个数字的顺序应为第一个先到,或者两个数字中的任何一个都可以先到,或者第二个应该放在第一位。一个快速的方法是从第一个数字中减去第二个数字

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


  • 在大多数情况下,使用合并排序或快速排序,这两种排序速度更快(
    nlogn
    运行时间)。。规范中没有规定用于JavaScript的精确算法。
    var anArray = [ 5, 4, 8 , 1, 3] ; 
    
    anArray.sort(function (a,b){return a - b});