sort的比较函数有两个默认参数,要在函数中接收这两个参数,这两个参数是数组中两个要比较的元素,通常我们用 a 和 b 接收两个将要比较的元素:
若比较函数返回值<0,那么a将排到b的前面;
若比较函数返回值=0,那么a 和 b 相对位置不变;
若比较函数返回值>0,那么b 排在a 将的前面;
1、升序、降序
let array = [20, 3, 2, 6,80,40,15,19];
// 升序 a-b < 0 a将排到b的前面,按照a的大小来排序的
// 比如被减数a是20,减数是40 20-40 < 0 被减数a(20)在减数b(40)前面
array.sort(function(a,b){
return a-b;
});
console.log(array); // [2, 3, 6, 15, 19, 20, 40, 80]
// 降序 被减数和减数调换了 40-20>0 被减数b(40)在减数a(20)的前面
array.sort(function(a,b){
return b-a;
});
console.log(array); //[80, 40, 20, 19, 15, 6, 3, 2]
自定义排序
let array = [{name:'a'},{name:'yy'},{name:'yyy'},{name:'aa'},{name:'bbb'},{name:'cccc'}];
array.sort(function(a,b){
if(a.name === 'yy'){// 如果name是'Koro1' 返回-1 ,-1<0 a排在b的前面
return -1
}else{ // 如果不是的话,a排在b的后面
return 1
}
})