sort之根据某个字段进行排序

比较函数应该具有两个参数 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 之前。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理