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)*/

  

 
 

  

原文地址:https://www.cnblogs.com/menglong1214/p/9543762.html

时间: 2025-01-14 08:23:47

js中数组Array对象的方法sort()的应用的相关文章

JS数组去重,js中数组(Array)的排序(sort)

JS数组去重 var ddd = [1,2,4,5,2, 222,1,5,6]; var uq = {}; var rq = []; for(var i=0; i<9; i++){ if(!uq[ddd[i]]){ uq[ddd[i]] = true; rq.push(ddd[i]); } } return rq; js中数组(Array)的排序(sort)注意事项 var arrDemo = new Array(); arrDemo[0] = 10; arrDemo[1] = 50; arrD

js中数组与对象的遍历

数组遍历: 1.js基本的for遍历 2.jquery提供的each函数 ----------------------------------- $.each(array, function(){ alert(this); }); ----------------------------------- 对象遍历: js: --------------------------------------------- for (var k in obj) { alert(obj[k]): } jque

js中数组Array的操作

JS中数组有很多操作,作为前端多多少少知道点,但每次要用时都需要去百度,有点麻烦,所以在这儿做个备忘,简单总结些平时最常用的数组操作. shift:删除原数组第一项,并返回删除元素的值: var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 注:如果数组为空则返回undefined unshift:将参数添加到原数组开头,并返回数组的长度 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); /

JS中数组Array的用法示例介绍 (转)

new Array() new Array(len) new Array([item0,[item1,[item2,...]]] 使用数组对象的方法: var objArray=new Array(); objArray.concact([item1[,item2[,....]]]-------------------将参数列表连接到objArray的后面形成一个新的数组并返回,原有数组不受影响.如:var arr=["a","b","c"];

js中数组Array的一些常用方法总结

var list = new Array()是我们在js中常常写到的代码,今天就总结一下Array的对象具有哪些方法. list[0] = 0; list[1] = 1; list[2] = 2; 或者这样声明:var list = [0,1,2]; (1) shift():  alert(list.shift()); //删除数组的第一个元素,返回删除的值.这里是0  alert(list.length); //返回的数组长度是2 (2) unshift( i , j ): list.unsh

js中数组,对象,json区别

对于js新手,这是我这周项目总结.包括数组,对象,json区别,以及前后台数据传输 数组:批量存放数据的工具,包括取值,数组的各种操作,[ ]在js中只表示数组,或者访问对象的属性,昨天还碰到了将值转化为数组,进行json字符转转化的例子.下面会给出具体例子 var arrData=["1","2","3']; var arrData=new Array(); var paramvo=[task_id];// 定义数组paramvo,值为[9999],方便

javascript中的Array对象的方法

检测数组:只考虑一个全局作用域的情况下可以使用value instanceof Array 来判断一个对象是否是数组:如果要考虑多个全局的作用域,则使用Object.prototype.toString.call(value) == "[object Array]" 转换方法:toString toLocaleString  join 栈方法:(后进先出)在数组末尾插入一项,在数组末尾弹出一项.push:在数组末尾插入一项或多项,并返回现在的数组长度:pop:弹出数组最后一项,并返回.

js中数组和对象的合并

1 数组合并 1.1 concat 方法 1 2 3 4 var a=[1,2,3],b=[4,5,6]; var c=a.concat(b); console.log(c);// 1,2,3,4,5,6 console.log(a);// 1,2,3  不改变本身 1.2 循环遍历 1 2 3 4 5 6 7 8 var arr1=['a','b']; var arr2=['c','d','e']; for(var i=0;i<arr2.length;i++){       arr1.push

JS中数组和对象的区别