纯数字的数组排序推荐方法
var arr = [1,4,14,6,9];
function compare(val1,val2) {
return val1-val2;//倒序为return val2-val1
}
arr.sort(compare);
console.log(arr);//[1, 4, 6, 9, 14]
比较全面的数组排序方法
var arr_str = [1,'a','abc','66'];
function compare(val1,val2) {
if(val1 > val2){
return 1;
}else if(val1 < val2){
return -1;
}else{
return 1;
}
}
arr_str.sort(compare);
console.log(arr_str);//["a", "abc", 1, "66"]
对象数组排序方法
var obj = [
{a:1, b:'a', c:'aaa'},
{a:2, b:'A', c:5}
];
function compareObj(propertyName){
return function (obj1,obj2) {
if(obj1[propertyName] > obj2[propertyName]){
return 1;
}else if(obj1[propertyName] < obj2[propertyName]){
return -1;
}else{
return 0;
}
}
}
obj.sort(compareObj('a'));//根据对象的b属性的大小排序
console.log(obj);//[{a: 1, b: "a", c: "aaa"}, {a: 2, b: "A", c: 5}]
obj.sort(compareObj('b'));//根据对象的b属性的大小排序
console.log(obj);//[{a: 2, b: "A", c: 5},{a: 1, b: "a", c: "aaa"}]