比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,即 a - b < 0 ,则返回一个小于零的值,数组将按照升序排列。那么 a 会被排列到 b 之前;

若 a 等于 b,则返回 0。a 和 b 的相对位置不变

若 a 大于 b, 即 a - b > 0 ,则返回一个大于零的值,数组将按照降序排列。 b 会被排列到 a 之前。

function sortDescFn(obj1, obj2) {
    var val1 = parseFloat(obj1['num'])
    var val2 = parseFloat(obj2['num'])
    if (val1 < val2) {// 如果前一项小于后一项  a<b,返回一个大于零的值,b会被排在a之前,就是降序
        return 1 
    } else if (val1 > val2) {
        return -1
    } else {
        return 0
    }
}
let arr =[
    {num:123,age:18},
    {num:3,age:1},
    {num:40,age:122},
    {num:12,age:4},
    {num:200,age:90},
    {num:17,age:24},
    {num:1,age:31}
]
console.log(arr.sort(sortDescFn));

// 比较函数应该具有两个参数 a 和 b,其返回值如下:

// 若 a 小于 b,即 a - b < 0 ,则返回一个小于零的值,数组将按照升序排列。那么 a 会被排列到 b 之前;
//
// 若 a 等于 b,则返回 0。a 和 b 的相对位置不变
//
// 若 a 大于 b, 即 a - b > 0 ,则返回一个大于零的值,数组将按照降序排列。 b 会被排列到 a 之前。

Maldivee
145 声望4 粉丝

如果你能看到我的梦想,请给我前行的力量,幸运是忠诚的祈祷,是光穿梭的暗道