如果在 sort()方法中带参,我们就可以自定义排序规则。具体做法如下:
我们可以在 sort()的参数中添加一个回调函数,来指定排序规则。回调函数中需要定义两个形参,JS将会分别使用数组中的元素作为实参去调用回调函数。
JS根据回调函数的返回值来决定元素的排序:(重要)
-
如果返回一个大于 0 的值,则元素会交换位置
-
如果返回一个小于 0 的值,则不交换位置。
-
如果返回一个等于 0 的值,则认为两个元素相等,则不交换位置
将数组中的数字按照从小到大排序
写法 1:
var arr = [5, 2, 11, 3, 4, 1];
// 自定义排序规则
var result = arr.sort(function (a, b) {
if (a > b) {
// 如果 a 大于 b,则交换 a 和 b 的位置
return 1;
} else if (a < b) {
// 如果 a 小于 b,则位置不变
return -1;