Sort()按参数传递?在javascript中

时间:2017-07-19 09:10:45

标签: javascript jquery sorting

我正在学习javascript,而且我在javascript中有一些关于排序方法的问题,是的,在你问我已经阅读其他问题之前,我理解这一点:

“小于0:”a被排序为比“b”更低的索引。 零:“a”和“b”被认为是相等的,并且不执行排序。 大于0:“b”被排序为比“a”更低的索引。“

关于sort()函数的主要问题,但我不明白的是:

var array=[5, 2, 1, 10]

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

函数中ab作为参数的目的是什么,函数期间将使用的参数值是多少?它被告知返回a-b,但在此过程中谁将成为ab?我不是要求console.log()示例。如果ab是我的paremeter,如果我甚至没有传递ab的值,那么该功能如何运作?

在其他语言中,传递ab的值是必要的。

1 个答案:

答案 0 :(得分:2)

  

compareFunction:指定定义排序的函数   订购。如果省略,则根据每个字符对数组进行排序   Unicode代码点值,根据每个字符串的转换   元件。

您在array.sort中传递的是一个称为比较器函数的函数。它将做什么基本上是它将对数组进行排序,如果将进行排序,它将在任何给定时间比较数组的两个元素,并根据提供的函数的实现细节对其进行排序。

假设你有一个数组[2 , 4, 3] 鉴于您的排序函数会将比较器中的元素传递给比较器2,3,并返回结果2 - 4,即-2,您已经知道< 0表示a元素需要在较低的位置,2将首先出现。它将比较4 - 3,即> 0意味着需要追求。

文档包含您问题的所有答案。

Sort Documentation on MDN