主页 > 前端 > javascript >
来源:自学PHP网 时间:2023-11-07 16:13 作者: 阅读:次
[导读] 本文章介绍了我们常用的利用数组排序算法来介绍js中对数组排序的方法总结,包括有冒泡法排序与sort方法来排序,有需要的朋友可参考。...
冒泡法排序 <script type="text/javascript"> <!-- function sort2(obj) { var arr=obj; var temp; for(var i=0;i<arr.length;i++) { for(var j=i+1;j<arr.length;j++) { if(arr[i]<arr[j]) { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } return arr; } alert(sort2([3,2,5,6,10,8,4,1])); --> </script> 列2 利用sort方法来排序。 <script type="text/javascript"> <!-- function sort1(obj) { var arr=obj; arr.sort(function(a,b){return a<b?1:-1}); return arr; } alert(sort1([3,2,5,6,10,8,4,1])); --> </script> sort还有一个例子 var arrDemo = new Array(); arrDemo[0] = 10; arrDemo[1] = 50; arrDemo[2] = 51; arrDemo[3] = 100; arrDemo.sort(); //调用sort方法后,数组本身会被改变,即影响原数组 alert(arrDemo);//10,100,50,51 默认情况下sort方法是按ascii字母顺序排序的,而非我们认为是按数字大小排序 arrDemo.sort(function(a,b){return a>b?1:-1});//从小到大排序 alert(arrDemo);//10,50,51,100 arrDemo.sort(function(a,b){return a<b?1:-1});//从大到小排序 alert(arrDemo);//100,51,50,10 1.数组调用sort方法后,会影响本身(而非生成新数组) 2.sort()方法默认是按字符来排序的,所以在对数字型数组排序时,不可想当然的以为会按数字大小排序! 3.要改变默认的sort行为(即按字符排序),可以自行指定排序规则函数(如本例所示) 效率经我测试不管是在ie7还是在ff3下,都是sort1要快。 如希望通过二维数组中的第二列数据排序: <script language="javascript"> <!-- var testArray = new Array(); testArray[0]= new Array('e','2','g'); testArray[1]= new Array('b','3','c'); testArray[2]= new Array('a','1','a'); testArray[3]= new Array('d','4','h'); testArray.sort(sortfunction); alert(testArray[0] + " " + testArray[1] + " " + testArray[2] + " " + testArray[3]) // 排序方法中有两个参数,表示数组中两个用来排序的元素 // function sortfunction(x,y) { return x[2].charCodeAt(0) - y[2].charCodeAt(0);//根据二维数组的第三列的第一个字母的ASCII码来降序排序 } // --> </script> |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com