• js中数组Array对象的方法sort()的应用


    一、 sort()方法的介绍  
    
     //给一组数据排序
        var arrNum = [12,1,9,23,56,100,88,66];
        console.log("排序前的数组:"+arrNum);
        arrNum.sort();//默认按照字母排序
        console.log("排序后的数组:"+arrNum);
    
        //对数组进行升序排列,将函数作为参数传入
        arrNum.sort(function (a,b) {
            return a-b;//数组中两两比较,结果为正(a>b),则互换位置,小的在前面(从索引0开始,分别和后面元素比较)
        });
        console.log("升序排序后的数组:"+arrNum);
    
        //对数组进行降序排列,将函数作为参数传入
        arrNum.sort(function (a,b) {
            return b-a;//数组中两两比较,结果为正,则互换位置,大的在前面
        });
        console.log("降序排序后的数组:"+arrNum);
    
    
    二、 sort()方法的高级应用(按照对象数组中对象的属性进行排序)
      function Student(name,age,score) {
            this.name = name;
            this.age = age;
            this.score = score;
        }
    
        var stu1 = new Student("寒殇凌雪",23,100);
        var stu2 = new Student("花木扶疏",25,97);
        var stu3 = new Student("北城以北",20,95);
        var stu4 = new Student("南柯一梦",24,99);
        var stu5 = new Student("水墨淡彩",22,95);
    
        var arr = [];
        arr.push(stu1,stu2,stu3,stu4,stu5);
        console.log("排序前输出每一个索引对应的值如下:")
        for(i in arr){
            console.log(arr[i]);
        }
    
        // arr.sort(upSort("score"));
        arr.sort(upSort("score","age"));
        console.log("升序排列后输出每一个索引对应的值如下:")
        for(i in arr){
            console.log(arr[i]);
        }
    
        //arr.sort(lowSort("score"));
        arr.sort(lowSort("score","age"));
        console.log("降序排列后输出每一个索引对应的值如下:")
        for(i in arr){
            console.log(arr[i]);
        }
    
    
    /*    //升序排列
        function upSort(property) {//指定某个属性的排序
            return function (a,b) {
                return a[property] - b[property];
            }
        }*/
    
    
        function upSort(score,age) {//指定某个属性的排序
            return function (a,b) {
                if(a.score == b.score){//当分数相等,按照年龄排序
                    return a.age - b.age;
                }
                return a.score - b.score;
            }
        }
    
    
        //降序排列
    /*    function lowSort(property) {//指定某个属性的排序
            return function (a,b) {
                return b[property] - a[property];
            }
        }*/
    
         function lowSort(score,age) {//指定某个属性的排序
             return function (a,b) {
                 if(a.score == b.score){//当分数相等,按照年龄排序
                     return b.age - a.age;
                 }
                 return b.score - a.score;
             }
            }
    
    
    
        /*var arr1 = [12,8,45,10];
        arr1.sort(function (a,b) {
            return a-b;//升序
        });
        console.log(arr1);
    
        arr1.sort(function (b,a) {
            return a-b;//升序
        });
        console.log(arr1)*/

  • 相关阅读:
    Eclipse 中怎样自动格式化代码?
    如何使用Jfreechart生成柱状图?
    ADT OOP
    5.2 Construction for Reuse
    Lab6实验的一些思考
    软件构造的八个多维视图
    软件构造笔记5.1 Metrics, Morphology and External Observations of Reusability
    事后诸葛亮之感谢
    (Model)针对编译错误的友好提示
    第二次结对作业
  • 原文地址:https://www.cnblogs.com/menglong1214/p/9543762.html
Copyright © 2020-2023  润新知