var arr=[{
name:'lisi',
age:20
},{
name:'wangwu',
age:32
},{
name:'zhangsan',
age:45
},{
name:'saly',
age:63
}]
var compareDesc = function (prop) {
return function (obj1, obj2) {
var val1 = obj1[prop];
var val2 = obj2[prop];
if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
val1 = Number(val1);
val2 = Number(val2);
}
if (val1 > val2) {
return -1;
} else if (val1 < val2) {
return 1;
} else {
return 0;
}
}
}
// 按照age属性降序排序,如果想要升序,将上段代码return返回值 1和-1 位置对调
console.log(arr.sort(compareDesc('age')));
字母排序(参考链接)
function compare(prop) {
return function (b, a) {
var x1 = a[prop].toUpperCase();
var x2 = b[prop].toUpperCase();
if (x1 < x2) {
return -1;
}
if (x1 > x2) {
return 1;
}
return 0;
}
}
// 按照name属性排序
arr.sort(compare('name'));