使用排序函数
sort应该具有两个参数
如果根据自定义标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的数。如果a等于b,就返回0。如果a大于b,就返回一个大于0的数。
根据数字大小排序
- 根据排序函数比较数组中每个元素的大小,并按从小到大排序
var dd=[1,3,5,2,8,9,6,4,7,0];
function f(a,b){
return (a-b);
}
dd.sort(f);
alert(dd);
- 按照从大到小排序,则需要让返回值取反。
var dd=[1,3,5,2,8,9,6,4,7,0];
function f(a,b){
return -(a-b);
}
dd.sort(f);
alert(dd);
根据奇偶性质排序
- 奇数在左侧,偶数在右侧
var dd=[1,3,5,2,8,9,6,4,7,0];
function ff(s1,s2){
var s1=s1%2;
var s2=s2%2;
if(s1==0) return 1;
if(s2==0) return -1;
}
dd.sort(ff);
alert(dd);
- 奇数在右侧,偶数在左侧。
var dd=[1,3,5,2,8,9,6,4,7,0];
function ff(s1,s2){
var s1=s1%2;
var s2=s2%2;
if(s1==0) return -1;
if(s2==0) return 1;
}
dd.sort(ff);
alert(dd);
根据字母大小写排序
- 默认(区分大小写)
var w=["aD","Ad","cF","Cf"];
w.sort();
document.write("默认字母排序:\n"+w);
- 大写字母在前(区分大小写)
var w=["aB","Ab","Ba","bA"];
function f(a,b){
if(a>b) return 1;
else return -1;
}
w.sort(f);
alert(w);
- 小写字母在前
var w=["aB","Ab","Ba","bA"];
function f(a,b){
if(a>b) return -1;
else return 1;
}
w.sort(f);
alert(w);
- 不区分字母大小写排序
var w=["aB","Ab","Ba","bA"];
function p(a,b){
var a=a.toLowerCase;
var b=b.toLowerCase;
if(a>b){
return -1;
}else{
return 1;
}
}
w.sort(p);
alert(w);
将浮点数与整数分开
- 浮点 数在左
var dd=[3.44,5.66,2,7,9.66,12];
function v(a,b){
if (a>Math.floor(a)) return -1;
if (b>Math.floor(b)) return 1;
}
dd.sort(v);
alert(dd);
- 浮点数在右
var dd=[3.44,5.66,2,7,9.66,12];
function v(a,b){
if (a>Math.floor(a)) return 1;
if (b>Math.floor(b)) return -1;
}
dd.sort(v);
alert(dd);