zoukankan      html  css  js  c++  java
  • js 一/二维数组排序

    JavaScript中数组排序方法

    用到的最多的当然是封装好的sort()方法了 

    一:sort()方法怎么使用?

     sort方法并不像我们想的那么容易使用,不是单纯的arr.sort()就行了,需要我们定义里面的回调函数!因为sort()方法默认情况下按照升序排列数组项,sort()方法会调用toString()转型方法,然后比较得到的字符串,即使我们比较的是数字,他也会把数字转为字符串以后再排序。 
    请看下面例子:

    var arr1 = [0, 1, 3, 10, 16, 5, 9, 0, 3];
    var arr2 = ['bangbang', 'father', 'mother', 'brother', 'sister', true, false, 0, 1, 6, 13];
    console.log(arr1.sort()) //很明显,这样不是我们要的结果,[ 0, 0, 1, 10, 16, 3, 3, 5, 9 ]
    console.log(arr2.sort()); //[ 0,1,13,6,'bangbang','brother',false,'father','mother','sister',true]
    
    //传入自定义回调函数之后
    function ascend(a,b){
        return a-b;
    }
    //降序排列
    function descend(a,b){
        return b-a;
    }
    console.log(arr1.sort(ascend));     //[ 0, 0, 1, 10, 16, 3, 3, 5, 9 ]
    console.log(arr1.sort(descend));    //[ 16, 10, 9, 5, 3, 3, 1, 0, 0 ]

    二:用 sort 方法进行二维数组的排序。

    var arr1 = [[4,5,7],[11,3,6,100,77],[12,9,12,10],[3,1,2,99,22]];
    function ascend(x,y){
        return x[3] - y[3];  //按照数组的第4个值升序排列
    }
    function descend(x,y){
        return y[0] - x[0];  //按照数组的第1个值升序排列
    }
    console.log(arr1.sort(ascend));
    console.log(arr1.sort(descend));

    当然还有其他的排序方法,再次我只说封装好的,其实排序有很多种,关键看你怎么使用! 

    三:顺便什么是reverse()方法?怎么使用? 

    reverse方法会反转数组项的顺序,请看如下示例:

    var arr1 = [0, 1, 3, 10, 16, 5, 9, 0, 3];
    var arr2 = ['bangbang', 'father', 'mother', 'brother', 'sister', true, false, 0, 1, 6, 13];
    console.log(arr1.reverse());//[ 3, 0, 9, 5, 16, 10, 3, 1, 0 ]
    console.log(arr2.reverse());//[ 13,6,1,0,false,true,'sister','brother','mother','father','bangbang'

    转载: http://blog.csdn.net/flyingpig2016/article/details/52901977

  • 相关阅读:
    MySQL-子查询,派生表,通用表达式
    MySQL-插入数据(INSERT)
    IDEA中如何使用debug调试项目 一步一步详细教程
    Java相对路径/绝对路径总结
    jsp九个内置对象、四个域对象及Servlet的三大域对象
    浅析MVC模式与三层架构的区别
    三层架构详解
    Java集合中List,Set以及Map等集合体系详解
    POJ3233 [C
    HDU 2829 [Lawrence] DP斜率优化
  • 原文地址:https://www.cnblogs.com/ostrich-sunshine/p/8249847.html
Copyright © 2011-2022 走看看