当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript 数组排序函数

Javascript
jQuery开发者都需要知道的5个小技巧
Extjs学习笔记之六 面版
Javascript 中的类和闭包
IE6下JS动态设置图片src地址问题
Extjs学习笔记之七 布局
Extjs学习笔记之八 继承和事件基础
Extjs TriggerField在弹出窗口显示不出问题的解决方法
JavaScript中的集合及效率
利用js获取服务器时间的两个简单方法
在html页面上拖放移动标签
了解jQuery技巧来提高你的代码
JavaScript 页面坐标相关知识整理
Javascript UrlDecode函数代码
JQuery 遮罩层实现(mask)实现代码
jQuery 页面 Mask实现代码
Javascript的构造函数和constructor属性
js或css文件后面跟参数的原因说明
将CKfinder整合进CKEditor3.0的新方法
jQuery UI-Draggable 参数集合
jQuery 行级解析读取XML文件(附源码)

Javascript 中的 javascript 数组排序函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 199 ::
收藏到网摘: n/a

javascript的数组排序函数 sort方法,默认是按照ASCII 字符顺序进行升序排列。 arrayobj.sort(sortfunction);
参数:sortFunction
可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。
如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:
负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。
以上的方法在一维的排序还是很方便的,但像SQL语句中的ORDER BY 一样的多键值排序由怎么做呢?
多维数组的多键值排序,则需要复杂一些,但不需要用循环解决。实际解决的道理是一样的 。
数字:
以下的例子是将数字的多维数组按照第5列,第9列,第3列的顺序排序,像SQL语句中的ORDER BY col5,col9,col7。数字的时候可以直接两个项目相减,以结果作为返回值即可。
复制代码 代码如下:

<script language=javascript>
var myArray = new Array();
for(var i=0;i<10;i++ )...{
myArray[i]=new Array();
myArray[i][0]=Math.floor(Math.random()*10);
myArray[i]=Math.floor(Math.random()*10);
myArray[i]=Math.floor(Math.random()*10);
myArray[i]=Math.floor(Math.random()*10);
myArray[i]=Math.floor(Math.random()*10);
myArray[i]=Math.floor(Math.random()*10);
myArray[i]=Math.floor(Math.random()*10);
myArray[i]=Math.floor(Math.random()*10);
myArray[i]=Math.floor(Math.random()*10);
}
myArray.sort( function(x, y) ...{
return (x[0]==y[0])?((x==y)?(x-y):(x-y)):(x-y)
});
for(var i=0;i<myArray.length;i++ )...{
document.write(myArray[i].join(",") + "<br/>");
}
</script>

字符:
字符的时候sortFunction中的项目不能像数字一样直接相减,需要调用
str1.localeCompare( str2 )方法来作比较,从而满足返回值。以下是多维数组的第1,2列作排序的情况。
复制代码 代码如下:

function sortFunction(array) ...{
return array.sort( function(x, y) ...{
return (x[0]==y[0])?(x.localeCompare(y)):(x[0].localeCompare(y[0]))
});
}

因此arrayObject.sort( sortFunction )的排序功能还是很强大的,终于能够实现了SQL语句中的ORDER BY 一样的功能。