sort排序

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

    }

})

你可能感兴趣的:(sort排序)