按照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>