你的位置:首页 > Java教程

[Java教程]json 排序


在了解json排序之前你需要了解一点排序的思想:
最传统的排序方式:冒泡排序

  1. function pup(obj){//冒泡排序,每次外循环执行一次将得到最小的数
  2.         for (var i = 0; i< obj.length; i++) {
  3.                 for(var j=i+1; j<obj.length;j++){
  4.                         if (obj[i]>obj[j]) {
  5.                                 var temp=obj[i];
  6.                                 obj[i]=obj[j];
  7.                                 obj[j]=temp;
  8.                         };
  9.                         console.log(j);
  10.                 };        
  11.         };
  12.         return obj;
  13. };


  1. function pup1(obj){ //冒泡排序,外循环每执行一次(得到最大的数),内循环减少一次
  2.         for (var i = 0; i < obj.length; i++) {
  3.                 for (var j=0; j<obj.length-i; j++) {
  4.                         if (obj[j]>obj[j+1]) {
  5.                                 var temp=obj[j];
  6.                                 obj[j]=obj[j+1];
  7.                                 obj[j+1]=temp;
  8.                         };                
  9.                 };
  10.         };
  11.         return obj;
  12. };



还有就是我们js数组中的一个方法 sort();
我之前写过sort排序的方法,可以看这个链接中的介绍:http://www.w3cfuns.com/blog-5463736-5404922.html

学习完了各种排序思想,我们就来探讨一下json排序的异同点吧,

  1. function sortJson1(json,key){ // 借用数组中sort排序方法
  2.                 return json.sort(function(a,b){
  3.                         var x=a[key];
  4.                         var y=b[key];
  5.                         if (x>y) {
  6.                                 return 1;
  7.                         }
  8.                         else{
  9.                                 return -1;
  10.                         };
  11.                 });
  12.         };
  13.         function sortJson2(json,key){
  14.                 for(var j=1;j<json.length;j++){
  15.                 var temp=json[j],
  16.                     val=temp[key],
  17.                     i=j-1;
  18.                 while(i >=0 && json[i][key]>val){
  19.                     json[i+1] = json[i];
  20.                     i = i-1;    
  21.                 }
  22.                 json[i+1] = temp;
  23.         }
  24.         return json;        
  25.         };
    1. function sortJson(json,key){ //借用传统的冒泡思想
    2.                 for (var i = 0; i < json.length; i++) {
    3.                         for (var j = 0; j < json.length-i; j++) {
    4.                                 if (json[j][key]>json[j+1][key]) {
    5.                                         var temp=json[j];
    6.                                         json[j]=json[j+1];
    7.                                         json[j+1]=temp;
    8.                                 };
    9.                         };
    10.                 };
    11.                 return json;
    12.         };