我正在学习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})
函数中a
和b
作为参数的目的是什么,函数期间将使用的参数值是多少?它被告知返回a-b
,但在此过程中谁将成为a
和b
?我不是要求console.log()
示例。如果a
和b
是我的paremeter,如果我甚至没有传递a
和b
的值,那么该功能如何运作?
在其他语言中,传递a
和b
的值是必要的。
答案 0 :(得分:2)
compareFunction:指定定义排序的函数 订购。如果省略,则根据每个字符对数组进行排序 Unicode代码点值,根据每个字符串的转换 元件。
您在array.sort中传递的是一个称为比较器函数的函数。它将做什么基本上是它将对数组进行排序,如果将进行排序,它将在任何给定时间比较数组的两个元素,并根据提供的函数的实现细节对其进行排序。
假设你有一个数组[2 , 4, 3]
鉴于您的排序函数会将比较器中的元素传递给比较器2,3
,并返回结果2 - 4
,即-2,您已经知道< 0表示a元素需要在较低的位置,2将首先出现。它将比较4 - 3
,即> 0意味着需要追求。
文档包含您问题的所有答案。