sort()函数中回调函数可实现升序排列,如下所示:
sort(function(a,b){
return a - b;
})
等价于
sort(function(a,b){
if(a < b) {
return -1;
}
if(a > b) {
return 1;
}
if(a == b) {
return 0;
}
})
原理:
1. 如果return返回-1,表示a小于b,数组排序中a会排在b之前
2. 如果return返回1,表示a大于b,数组排序中a会排在b之后
3. 如果return返回0,表示a与b相等,其位置保持不变
底层实现机制:
详见源码:
https://github.com/v8/v8/blob/ad82a40509c5b5b4680d4299c8f08d6c6d31af3c/src/js/array.js
第710行