sort()方法可以根据比较函数,来比较两个值,然后返回一个用于说明两个值的相对顺序的数字。例
function f(a,b){
return (a-b)
}
var a=[3,5,4,0,2,,1,6]
a.sort(f);
document.write(a)
根据函数若a小于b,返回一个负数,则a排在b前面;若a大于b,返回一个正数,a排在b后面;若a=b,返回0,排位不变。上面代码可表示从小到大排列数据,若是要从大到小可以让返回值取反
function f(a,b){
return -(a-b)
}
var a=[3,5,4,0,2,,1,6]
a.sort(f);
document.write(a)
根据奇偶性质排列数组
虽然sort方法比较灵活,但是更加灵活的是比较函数的设计,例如根据奇偶顺序排列数组,只需比较函数中两个参数是否为奇偶数,并决定排列顺序即可
function f(a,b){
var a=a%2
var b=b%2
if(a==0) return 1
if(b==0) return -1
}
var c=[1,2,4,6,7,5,9,11]
c.sort(f)
document.write(c)
若想偶数在前面,a==0返回-1,b==0返回1即可
不区分大小写排序字符串
正常情况下,对字符串进行排序是区分大小写的,因为在字符编码当中大写字母排在小写字母的前面。可以利用sort方法进行不区分大小写字母的字符串排序。例:
function f(a,b){
var a=a.toLowerCase()
var b=b.toLowerCase()
if(a<b){
return -1
}else{
return 1
}
}
var c=["a","c","B","D","b"]
c.sort(f)
document.write(c)