元素模板站长为您解答:
<html><head><title>jQuery数组和字符串--对象数组排序</title><script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script><script type="text/javascript"><!--$(function(){var students =[{'sid':'ST001','sname':'张三','sage':18},{'sid':'ST004','sname':'赵六','sage':23},{'sid':'ST002','sname':'李四','sage':42},{'sid':'ST003','sname':'王五','sage':35}];//表格显示$.each(students,function(index, value){$('#ia').append('<tr><td>' + value.sid +'</td><td>' + value.sname +'</td><td>' + value.sage + '</td></tr>');});//按照SID排序var sidOrder = students.sort(function(a, b){if(a.sid < b.sid) return -1;if(a.sid > b.sid) return 1;return 0;});$.each(sidOrder,function(index, value){$('#ib').append('<tr><td>' + value.sid +'</td><td>' + value.sname +'</td><td>' + value.sage + '</td></tr>')});//按照SAGE排序var sageOrder = students.sort(function(a, b){return (a.sage - b.sage);});$.each(sageOrder,function(index, value){$('#ic').append('<tr><td>' + value.sid +'</td><td>' + value.sname +'</td><td>' + value.sage + '</td></tr>')});});//--></script></head><body><h5>未排序对象数组:</h5><table id='ia' border="1"></table><h5>按照SID排序对象数组:</h5><table id='ib' border="1"></table><h5>按照SAGE排序对象数组:</h5><table id='ic' border="1"></table></body></html>
上面是完整代码
我们使用sort()方法:需要添加比较函数,反复从数组中获取一对值,在比较的基础上返回<0、=0和>0的值。
其实和排序字符串、数值没什么区别,比较对象是按照对象中的某个属性比较,所以,我们只要取出对象中的某个属性比较即可。