排序

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}]
posted @ 2019-12-13 12:17  雨夜稻草  阅读(146)  评论(0编辑  收藏  举报