我们通常在对js 数组进行排序的时候使用sort()方法。
例如:
var arr = new Array();
arr.push(3);
arr.push(5);
arr.push(1);
arr.push(4);
arr.sort();//升序排序
for(var i = 0; i < arr.length; i++){
document.writeln(arr[i]);
}
那么降序排序呢?
先arr.sort();//升序排序
再arr.reverse();//进行倒序
这是一种实现方式,另外sort()方法可以接受一个方法参数,类似java中的comparator比较器。
function desc(x,y)
{
if (x > y)
return -1;
if (x < y)
return 1;
}
function asc(x,y)
{
if (x > y)
return 1;
if (x < y)
return -1;
}
arr.sort(desc); // sort by desc
arr.sort(asc); // sort by asc
还有,可以直接把一个无名函数直接放到sort()方法中调用。
那么我们如何实现对象数组的排序呢?很简单,我们只需要实现比较器方法,比较对象的属性值就可以了。
例如:
var arr = new Array();
arr.push(3);
arr.push(5);
arr.push(1);
arr.push(4);
arr.sort();//升序排序
for(var i = 0; i < arr.length; i++){
document.writeln(arr[i]);
}
那么降序排序呢?
先arr.sort();//升序排序
再arr.reverse();//进行倒序
这是一种实现方式,另外sort()方法可以接受一个方法参数,类似java中的comparator比较器。
function desc(x,y)
{
if (x > y)
return -1;
if (x < y)
return 1;
}
function asc(x,y)
{
if (x > y)
return 1;
if (x < y)
return -1;
}
arr.sort(desc); // sort by desc
arr.sort(asc); // sort by asc
还有,可以直接把一个无名函数直接放到sort()方法中调用。
那么我们如何实现对象数组的排序呢?很简单,我们只需要实现比较器方法,比较对象的属性值就可以了。