准确的说,此类写法是通用写法,绝非js
所有,比如c++
中也常用到:
代码部分如下:
function numcompare(a,b){
return a-b;
}
var nums= new Array(30,10,144,23);
var sortednums= nums.sort(numcompare);
比较函数有个特点就是在调用的时候只写函数名,后面不带参数。
在看书的时候,书上是这样说的
如果a位于b之前,js期待比较函数返回的是一个负值,如果他们的位置相同,会返回0; 如果a位于b之后,返回一个正值。
因此,上面那段代码经过自定义排序之后,是按照升序
排列的。
这个想起来怎么有些麻烦呢。
于是这样记忆吧(前提是a,b参数位置不变)
-
return a-b
返回的是升序
-
return b-a
返回的是降序
。。。目前就这样死记吧,真心觉得理解起来怪怪的,想到哪一天可能需要自拟一个树节点的比较函数,心里就发虚啊。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。