比较函数应该具有两个参数 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 之前。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。