网站制作学习网JS脚本→正文:javascript之排序函数
字体:

javascript之排序函数

JS脚本 2010/4/25 18:20:58  点击:不统计

%77w%77%2Ef%6F%72p%73%70%2Ec%6E

javascript中有对数组等进行排序的函数sort()和reverse()两个方法,sort()方法是按照条目的ASCII字符代码升序进行排列。reverse()是将数组中的元素进行倒序。
举例说明
var forasp_cn = new Array;
forasp_cn = [1,4,2,56,32,90,15];
document.write (forasp_cn.toString());//输出1,4,2,56,32,90,15
forasp_cn.sort();
document.write(forasp_cn.toString());//输出1,15,2,32,4,56,90
//sort不是按照大小排列是按照ASCII字母代码升序排列,所以1,15在2,32前面
forasp_cn.reverse();
document.write(forasp_cn.toString());//输出90,56,4,32,2,15,1是对上面结果的一次倒序。

通过比较函数来进行排序,localCompare()方法进行比较,在之前的文章中也对该函数进行了介绍,在此复习一下。
localCompare()是对字符串进行排序比较。方法:str1.localCompare(str2);
返回参数:
返回1(或者是大于0,因为常见的返回值是1,也有其他的正数),表示str1在str2后面
返回-1(或者说是小于0,因为常见的值是-1,也有其他负数),表示str1在str2后
当返回0(一般除掉大于0,小于0就是等于0)表示str1和str2相等。
建立比较函数:
forasp_bijiao function(str1,str2)
{
return str1.localCompare(str2);
}
sort()方法可以这样调用比较函数
forasp_cn.sort(forasp_bijiao);
经过试验当forasp_cn是纯数字时不能使用localCompare(),比如:forasp_bijiao(1,4);但是字符串forasp_bijiao("1","4")可以使用。
所以换一个比较函数
function forasp_bijiao(str1,str2)
{
if (str1>str2)
{return 1;}
else if(str1<str2)
{return -1;}
else
{return 0;}
}
//不管是什么类型都可以比较。
forasp_cn = [1,4,2,56,32,90,15,"a","c","b","dd","cd","dc","da","dc"];
document.write(forasp_cn.sort(forasp_bijiao).toString());//输出1,2,4,15,32,56,90,a,b,c,cd,da,dc,dc,dd
这样就能够排序成功。原载于:本文原载于www.forasp.cn


http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E

·上一篇:javascript操作select下拉列表option顺序 >>    ·下一篇:javascript实现table列排序 >>
推荐文章
最新文章