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行
本文介绍了JavaScript中sort()函数的使用,特别是通过回调函数实现数组升序排列的方法。详细解析了回调函数的三种返回值(-1, 0, 1)对排序的影响,并提供了等价的if条件判断实现。同时,给出了V8引擎源码中的相关实现位置,帮助理解排序的底层机制。
353

被折叠的 条评论
为什么被折叠?



