排序
1、 逆转数组顺序:reverse
2、 数组排序:sort
1)默认根据ASCII值
2)比较函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
对于数字:
var arr3 = [10,5,40,25,1000,1]; console.log(arr3.sort()) // [1, 10, 1000, 25, 40, 5] ------------------------------ arr3.sort(function(a,b){ return a - b }) console.log(arr3) // [1, 5, 10, 25, 40, 1000] arr3.sort(function(a,b){ return b - a }) console.log(arr3) // [1000, 40, 25, 10, 5, 1]
自定义排序:
对于字符串,需区分大小写:
var arr3 = ["aaa","Ssdsd","acc","bs","Az"];
console.log(arr3.sort()) // ["Az", "Ssdsd", "aaa", "acc", "bs"]
----------------------
var arr3 = ["aaa","Ssdsd","acc","bs","Az"];
arr3.sort(function(a,b){
var a = a.toLowerCase();
var b = b.toLowerCase();
if(a>b) {
return -1;
}else{
return 1;
}
})
console.log(arr3); // ["Az", "Ssdsd", "aaa", "acc", "bs"]
对于对象:
var person = [ {name:'zhansan',age:45}, {name:'liuliu',age:56}, {name:'wangwu',age:34} ]
正序: person.sort(function(a,b){ if(a.age > b.age) { return 1; } if(a.age < b.age) { return -1; } return 0; }) console.log(person)
//返回结果:[{name: "wangwu", age: 34},{name: "zhansan", age: 45},{name: "liuliu", age: 56}]
逆序:
person.sort(function(a,b){
if(a.age > b.age) {
return -1;
}
if(a.age < b.age) {
return 1;
}
return 0;
})
console.log(person)
//返回结果:[{name: "wangwu", age: 56},{name: "zhansan", age: 45},{name: "liuliu", age: 34}]