数组排序

1.利用es6  sort 方法

function sort1(arr){
    arr.sort(function(a,b){
        return a-b
    });
    return arr;
};

如果想要降序排列,改为 return b-a 

2.利用中间值,切换两个值的位置

function sort2(arr){
    var i = 0, len = arr.length, j, d; for(; i<len; i++){ 
        for(j=0; j<len; j++){ 
            if(arr[i] < arr[j]){ 
                d = arr[j]; arr[j] = arr[i]; arr[i] = d; 
            } 
        } 
    }
    return arr;
};

3.针对元素为对象的数组排序,依然利用 sort 方法,但是需要写一个方法控制排序字段

var arr=[
    {name:"George", age:5, retiredate:"2018.01.02"},
    {name:"Edward", age:25, retiredate:"2017.01.02"},
    {name:"Christine", age:58, retiredate:"2018.03.02"},
    {name:"Sarah", age:62, retiredate:"2016.06.02"}
];
var by = function(name){
 return function(o, p){
   var a, b;
   if (typeof o === "object" && typeof p === "object" && o && p) {
     a = o[name];
     b = p[name];
     if (a === b) {
       return 0;
     }
     if (typeof a === typeof b) {
       return a < b ? -1 : 1;
     }
     return typeof a < typeof b ? -1 : 1;
   }
   else {
     throw ("error");
   }
 }
};
arr.sort(by("age"));
console.log(arr);

以上就是今天总结的数组排序的三个方法,如有表述不准确之处,欢迎指正,欢迎补充,感谢阅读。

原文地址:https://www.cnblogs.com/wangzhenyu666/p/8398286.html