在了解json排序之前你需要了解一点排序的思想:
最传统的排序方式:冒泡排序
- function pup(obj){//冒泡排序,每次外循环执行一次将得到最小的数
- for (var i = 0; i< obj.length; i++) {
- for(var j=i+1; j<obj.length;j++){
- if (obj[i]>obj[j]) {
- var temp=obj[i];
- obj[i]=obj[j];
- obj[j]=temp;
- };
- console.log(j);
- };
- };
- return obj;
- };
- function pup1(obj){ //冒泡排序,外循环每执行一次(得到最大的数),内循环减少一次
- for (var i = 0; i < obj.length; i++) {
- for (var j=0; j<obj.length-i; j++) {
- if (obj[j]>obj[j+1]) {
- var temp=obj[j];
- obj[j]=obj[j+1];
- obj[j+1]=temp;
- };
- };
- };
- return obj;
- };
还有就是我们js数组中的一个方法 sort();
我之前写过sort排序的方法,可以看这个链接中的介绍:http://www.w3cfuns.com/blog-5463736-5404922.html
学习完了各种排序思想,我们就来探讨一下json排序的异同点吧,
- function sortJson1(json,key){ // 借用数组中sort排序方法
- return json.sort(function(a,b){
- var x=a[key];
- var y=b[key];
- if (x>y) {
- return 1;
- }
- else{
- return -1;
- };
- });
- };
- function sortJson2(json,key){
- for(var j=1;j<json.length;j++){
- var temp=json[j],
- val=temp[key],
- i=j-1;
- while(i >=0 && json[i][key]>val){
- json[i+1] = json[i];
- i = i-1;
- }
- json[i+1] = temp;
- }
- return json;
- };
-
- function sortJson(json,key){ //借用传统的冒泡思想
- for (var i = 0; i < json.length; i++) {
- for (var j = 0; j < json.length-i; j++) {
- if (json[j][key]>json[j+1][key]) {
- var temp=json[j];
- json[j]=json[j+1];
- json[j+1]=temp;
- };
- };
- };
- return json;
- };