zoukankan      html  css  js  c++  java
  • 数组排序

    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);

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

  • 相关阅读:
    iOS应用崩溃日志分析
    使用Crashlytics来保存应用崩溃信息
    Mac和iOS开发资源汇总
    简单配置PonyDebugger
    程序员的工作不能用“生产效率”这个词来衡量
    使用Reveal 调试iOS应用程序
    MySQL 笔记
    flex弹性布局
    回调函数
    微信小程序开发
  • 原文地址:https://www.cnblogs.com/wangzhenyu666/p/8398286.html
Copyright © 2011-2022 走看看