一、普通数组排序
1、升序排序
var arr = [23, 9, 4, 78, 3];
var compare = function (x, y) {//比较函数
if (x < y) {
return -1;
} else if (x > y) {
return 1;
} else {
return 0;
}
}
console.log(arr.sort(compare));
2、降序排序
var arr = [15, 29, 8, 11, 100];
var compare = function (x, y) {
if (x < y) {
return 1;
} else if (x > y) {
return -1;
} else {
return 0;
}
}
console.log(arr.sort(compare));
二、数组对象排序
1、升序排序
var arr = [{name: "张三", age: 24}, {name: "李四", age: 25}, {name: "王五", age: 18}];
var compare = 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;
}
}
}
//调用方式
arr.sort(compare("age"))
2、降序排序
var arr = [{name: "张三", age: 24}, {name: "李四", age: 25}, {name: "王五", age: 18}];
var compare = 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;
}
}
}
//调用方式
arr.sort(compare("age"))