js排序(转载)
原文地址:http://blog.csdn.net/wzwlln/article/details/6187732#plain
sort(sortfunction)为javascript的数组对象(Array)的一个方法,提供排序功能,参数sortfunction为可选项;这个函数的主要作用是确定排序算法,默认情况下,按ASCII字符顺序进行升序排序。但是可以重写默认的排序规则,有两个参数,分别代表每次排序比较时的两个数组项,如果这个函数的返回值小于0则不交换原数组中元素的位置,否则交换元数组中元素的位置。
Demo1使用默认的按字母排序
1 var arr = ['b','cc','abc','fzj','xij','acd','yab']; 2 arr.sort(); 3 for (var i = 0; i < arr.length; i++) { 4 document.writeln(nameArr[i]); 5 }
结果:abc acd b cc fzj xij yab
Demo2数字排序,sort(parm)方法带参数
//降序函数 var desc = function(x,y) { if (x > y) return -1; //返回一个小于0 的数即可 else return 1; //返回一个大于0 的数即可 } //升序函数 var asc = function(x,y) { if (x > y) return 1; //返回一个大于0 的数即可 else return -1; //返回一个小于0 的数即可 } var arr2 = [4,6,4,2,7,9,0,1]; arr2.sort(desc); //降序排序 document.writeln(arr2); document.writeln("<br>"); arr2.sort(asc); //升序排序 document.writeln(arr2);
结果:
9,7,6,4,4,2,1,0
0,1,2,4,4,6,7,9
Demo2的简单算法
var arr2 = [4,6,4,2,7,9,0,1]; arr2.sort(function(a,b){ return a - b }); document.writeln(arr2); document.writeln("<br>"); arr2.sort(function(a,b){return b - a}); document.writeln(arr2);
结果:
0,1,2,4,4,6,7,9
9,7,6,4,4,2,1,0
加油