?
sort(sortfunction)为javascript的数组对象(Array)的一个方法,提供排序功能
参数 sortFunction 为可选项,是用来确定排序原则的js函数,
这个函数有两个参数,分别代表每次排序比较时的两个数组项,
如果这个函数的返回值小于0 则不交换原数组中元素的位置,否则交换原数组中元素的位置。
如果这个参数被省略, 那么元素将按照 ASCII 字符顺序进行升序排列。
一、默认按字母排序
参数 sortFunction 为可选项,是用来确定排序原则的js函数,
这个函数有两个参数,分别代表每次排序比较时的两个数组项,
如果这个函数的返回值小于0 则不交换原数组中元素的位置,否则交换原数组中元素的位置。
如果这个参数被省略, 那么元素将按照 ASCII 字符顺序进行升序排列。
一、默认按字母排序
- var arr = ['b','cc','abc','fzj','xij','acd','yab'];
- arr.sort();
- for (var i = 0; i < arr.length; i++) {
- document.writeln(nameArr[i]);
- }
var arr = ['b','cc','abc','fzj','xij','acd','yab']; arr.sort(); for (var i = 0; i < arr.length; i++) { document.writeln(nameArr[i]); }
结果:abc acd b cc fzj xij yab
二、数字排序,sort(prama)方法带参数
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);
//降序函数 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
三、复杂对象排序
var arr
= [{"ID":"1001","Name":"cxl"},{"ID":"1002","Name":"gyl"},{"ID":"1003","Name":"jxq"}];
//按ID排序
arr.sort(function(a,b){
return a.ID -
b.ID;
});
//按Name排序(可支持汉字的排序)
arr.sort(function(a,b){
return
a.Name.localeCompare(b.Name);
});