function pcompare(prop,rev) {
// 第二个参数没有传递,默认升序排序
if(rev === undefined) {
rev = 1;
}else {
rev = rev ? 1: -1;
}
return function(obj1,obj2) {
// 方括号也是访问对象属性的一种方式,优点是可以通过变量访问。
// 常规写法是 var val1 = obj1.prop;var val2 = obj2.prop;,但是这种不支持变量写法,所有这里不适用
var val1 = obj1[prop],
val2 = obj2[prop];
// 若是升序排序,此时rev=1,rev*-1=-1,等价于return val1 < val2 ? -1 : 1,,即val1<val2时,val1放在val2前面,否则放后面
// 若是降序排序,下面句子等价于return val1 < val2 ? 1 : -1,即val1<val2时,val1放在val2后面,否则放在val2前面
return val1 < val2 ? rev*(-1) : rev*1;
}
}
var data = [{
name: "啧啧啧",
age: 12,
time:'2020-10-24 11:45:43',
}, {
name: "略略略",
age: 3,
time:'2020-10-24 11:45:48',
}, {
name: "哈哈哈",
age: 7,
time:'2020-10-22 11:45:50',
}];
// 这里变量要加""
// 姓名按字符串编码降序排序
// pcompare函数 第一个参数为需要排序的字段 第二个参数 false 为降序 true为升序
data.sort(pcompare("time",false));
console.log(data);