知识点:
假设以对象数组形式来保存学生信息。每个学生包括3个属性:sid,sname,sage。请基于sid为该数组排序。 |
说明:
sort()方法:需要添加比较函数,反复从数组中获取一对值,在比较的基础上返回<0、=0和>0的值。 其实和排序字符串、数值没什么区别,比较对象是按照对象中的某个属性比较,所以,我们只要取出对象中的某个属性比较即可。 |
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>jQuery数组和字符串--对象数组排序</title> <script type="text/javascript" src="rs/js/jquery.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> |