首页 > 代码库 > 使用JavaScript几种简单的排序

使用JavaScript几种简单的排序

  前几天在工作碰到一个json对象排序的问题,一直认为JavaScript不能进行对象的排序,其实并不是,今天就来总结下常见的几种简单排序:

  第一类 纯数字;

  var arrOld = [4,10,9,1,0,31];
  var arrNew = arrOld.sort(sortNum);   function sortNum (a,b){     return a-b;
  }   //输出结果:[0, 1, 4, 9, 10, 31]

     sort()   方法用于对数组的元素进行排序,在原数组上进行排序,不生成副本。默认安装字符编码的顺序进行排序,如果想按其他标准排序就需要提供比较函数,sortNum()  就是进行数字排序的函数。

  第二类 英文字母;

    var arrOld = ["John","Alley","Selina","Yuan","Delia"];
    var arrNew = arrOld.sort();
    //["Alley", "Delia", "John", "Selina", "Yuan"]

  这个就比较简单了,sort排序即可

  第三类 中文汉字,还是直接上代码;

    var arrOld = ["张三","李四","王五","安利","蔡敏"];
    var arrNew = arrOld.sort(sortChiese);
    function sortChiese(param1,param2){
      return param1.localeCompare(param2);
    }
    //["安利", "蔡敏", "李四", "王五", "张三"]

  localeCompare() 按照本地特定的顺序进行比较

  第四类 对象类的排序,也是本次的重点;

      var arrOld = {"msg":[{"num": 10,"姓名":"张三","性别":"男","年龄":15},
                 {"num": 1,"姓名":"李四","性别":"男","年龄":25},                  {"num": 22,"姓名":"王五","性别":"女","年龄":20},                  {"num": 9,"姓名":"马六","性别":"男","年龄":15},                  {"num": 32,"姓名":"朱琪","性别":"女","年龄":15}]};   var arrNew = bubbleSort(arrOld.msg);   function bubbleSort(arr){ for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i].num>arr[j].num){//如果前面的数据比后面的大就交换 var temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } return arr; }

  举一反三,我们就能通过上面三种简单的排序思路对姓名、性别、年龄等进行排序了。这里引用的是冒泡排序,当然也可以使用其他排序方法。

  

使用JavaScript几种简单的排序