欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript中的sort()方法

程序员文章站 2022-07-11 14:59:47
...

sort()方法不仅仅按字母排序,还可以根据其他顺序执行操作。这时就必须为方法提供一个函数参数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。排序函数应该具有两个参数a和b,其返回值如下:

***如果根据自定义评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。

***如果a等于b,就返回0。

***如果a大于b,就返回 一个大于0的值

1、将根据排序函数比较数组中每个元素的大小,并按照从小到大的顺序执行排序:

//按从小到大的顺序排列数值
function f(a, b){//排序函数
	return (a-b)//返回比较参数
}

var a=[3,1,2,4,7,5,8,9,0];
a.sort(f);
alert(a);

2、按照从大到小的顺序执行排序。

//按从大到小的顺序排列数值
function f(a,b){//排序函数
	return -(a-b);//返回比较参数
}

var a=[3,1,2,4,7,5,8,9,0];
a.sort(f);
alert(a);

3、根据奇偶数顺序排列数组,只需要判断排序函数中两个参数是否为奇偶数,并决定排列顺序。

sort()方法在调用排序函数时,对每个元素值传递给排序函数,如果元素值为偶数,则保留其位置不变,如果元素值为奇数,则调换参数a和b的显示顺序,从而实现对数组中所有元素执行奇偶排序。如果希望偶数在前面,奇数在后面,就是用f1。

                       //偶数在右边
			function f(a,b){
			    var a = a % 2;
			    var b = b % 2;
			    if(a == 0) return 1;
			    if(b == 0) return -1;
			}
			
			//偶数在左边
			function f1(a, b){
				var a = a % 2;
				var b = b % 2;
				if(a == 0) return -1;
				if(b == 0) return 1;
			}
			var a=[3,1,2,4,7,5,8,9];
			a.sort(f);
			a.sort(f1);
			alert(a);

4、不区分大小写排序字符串。

在正常情况下,对字符串进行排序是区分大小写的,在字符编码表中,大写字母大于小写字母。

                        //不区分大小写排序字符串 
			function f(a,b){
				var a = a.toLowerCase;
				var b = b.toLowerCase;
				if(a>b){
					return 1;
				}else{
					return -1;
				}
			}
			var a = ["Aa","Ab","bA","aB"];
			a.sort(f);
			alert(a);

5、分离浮点数和整数。

                        function f(a,b){
				if(a > Math.floor(a)) return 1;
				if(b > Math.floor(b)) return -1;
			}
			var a = [3.555,1.334,3,5.456,2,7,87.4];
			a.sort(f);
			alert(a);