共计 627 个字符,预计需要花费 2 分钟才能阅读完成。
比较函数应该具有两个参数 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 之前。