JSON排序

按照JSON数组里面的某个字段排序。

这个在网上没找到,这里给出一个Demo。

<html>
<head>

<script type="text/javascript" src="jquery-1.9.1.min.js"></script>

<script type="text/javascript">

$(function(){

var data = [{name:"tracy", age:22, birth:"1985/9/22"}, {name:"Mark", age:21, birth:"1980/9/22"}, {name:"Aria", age:22, birth:"1989/9/22"},{name:"Dany", age:15, birth:"1988/9/22"}, {name:"Wenjun", age:12, birth:"1985/9/10"}, {name:"Xiaofei", age:20, birth:"1987/9/22"}];



$(window).load(function(){

var $container = $("#content");

InitDropDown($container, data);

});


$("#sortbyage").click(function(){


var $container = $("#content");

InitDropDown($container, sortDataByAge(data));


});

$("#sortbydate").click(function(){


var $container = $("#content");

InitDropDown($container, sortDataByDate(data));


});



// load the data
function InitDropDown($container, data)
{
   var contentdom = "";

   for(var i=0; i<data.length; i++)
   {
      contentdom += "<li>" + data[i].name + "   |   " + data[i].age + "    |     " + data[i].birth + "</li>";
   }   

   $container.html(contentdom);


}


//Sort by Age
function sortDataByAge(data)
{
    
   for(var i=0; i < data.length-1; i++)
   {
       for( var j=i+1; j > 0; j--)
       {

           if(data[j].age < data[j-1].age)
           {
              var tempobj = data[j];
              data[j] = data[j-1];
              data[j-1] = tempobj;
           }
           else
           {
               break;
           }
           
        }
   }

   return data;
}



//Sort by Date
function sortDataByDate(data)
{
    
   for(var i=0; i < data.length-1; i++)
   {
       for( var j=i+1; j > 0; j--)
       {

           var dateArrj = data[j].birth.split("/");
           var dateArrj2 = data[j-1].birth.split("/");

           var datej = new Date(dateArrj[0], dateArrj[1], dateArrj[2]).getTime();
           var datej2= new Date(dateArrj2[0], dateArrj2[1], dateArrj2[2]).getTime();   

           if(datej < datej2)
           {
              var tempobj = data[j];
              data[j] = data[j-1];
              data[j-1] = tempobj;
           }
           else
           {
               break;
           }
           
        }
   }

   return data;
}



});



</script>


</head>
<body>

<input type="button" id="sortbyage" value="Sort By Age" />

<input type="button" id="sortbydate" value="Sort By Date" />

<div style="margin-top: 10px">
<ul id="content" >
 
</ul>
</div>
</body>

</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值