项目中要实现表格按列排序,研究了几天,在以前的表格控件中实现了这个功能,其中关于sort的使用可能是很多刚接触JavaScript的朋友们没有接触过的,其实也不难,为了让大家少走弯路,我列举一个例子:
为了通用性,我使用二维数组,依据第一列的大小进行排序。数据内容为字符串。
<script type="text/javascript">
function sortAsc(a, b)
{
if (a.n = b.n)//如果要稳定排序,必须在相等的时候返回0
{
return 0;
}
else
{
return ( a.n > b.n ? 1 : -1);//当a.n > b.n,就返回1,交换顺序,否则返回-1,位置不变
}
}
function sortDesc(a, b)
{
if (a.n = b.n)
{
return 0;
}
else
{
return ( a.n < b.n ? 1 : -1);
}
}
var a = [
{ n : 1, v : "a1" }, { n : 1, v : "a2" }, { n : 2, v : "b1" }, { n : 0, v : "z1" }
];
a.sort(sortAsc)//升序
alert(a.join(" "));//将排完序的数组显示出来
a.sort(sortDesc)//降序
alert(a.join(" "));
</script>
在使用中需要注意的是由于sort为系统内部函数,所以在自定义的排序函数(在该例子中为sortAsc和sortDesc)中不能使用外部对象,即sortAsc和sortDesc只能接受固定的参数a和b,如果使用OO编程时要使用外部对象的属性,只能以全局变量的方式传进去。
javascript中sort的使用方法以及稳定排序的实现
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]
相关文章:
- DOM中document.getElementById效率问题(2007-11-29 1:7:51)
- INPUT type=text 元素 | input type=text 对象(2007-11-27 10:19:22)
- MARQUEE . start () 方法和stop()方法(2007-11-25 8:38:2)
- createControlRange方法(2007-11-23 1:55:48)
- FONT 元素 | font 对象(2007-11-22 6:9:4)
- urns方法(2007-11-20 1:54:49)
- insertCell方法(2007-11-17 2:59:42)
- createRange方法(2007-11-14 7:21:15)
- 自定义提示条(2007-11-9 9:26:27)
- 图象按比例 缩放(2007-11-9 6:56:0)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
