Javascript中的对象数组排序
在JavaScript也有像Java中的排序比较方法,非常强大。
一、 原型
1、已知数组a,排序函数fun
2、则可用a.sort(fun)对数组a进行排序,数组a排序后,重整为新序,即覆盖老的顺序。
二、排序函数原型
function sort(a, b){
if(a.name > b.name){
return 1;
}else if(a.name < b.name){
return -1;
}else{
return 0;
}
}
a,b为数组中要比较对象,name为对象a,b的属性。上面的代码表示按对象的“name”属性进行排序。
三、例子
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>对象数组排序</title>
</head>
<body>
<script lang="javascript">
function print(str){
document.writeln(str + "</br>");
}
function printArray(a){
for(var i=0;i<a.length;i++){
document.writeln(a[i].name + "</br>");
}
}
function sort(a, b){
if(a.name > b.name){
return 1;
}else if(a.name < b.name){
return -1;
}else{
return 0;
}
}
function test(){
var obj = [
{name:'Zhangshan'},
{name:'Lisi'},
{name:'Wangwu'},
{name:'Zhaoliu'}
];
print("------------排序前----------");
printArray(obj);
obj.sort(sort);
print("------------排序后----------");
printArray(obj);
}
test();
</script>
</body>
</html>
输出结果:
------------排序前----------
Zhangshan
Lisi
Wangwu
Zhaoliu
------------排序后----------
Lisi
Wangwu
Zhangshan
Zhaoliu