JavaScript中的sort()方法

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);




猜你喜欢

转载自blog.csdn.net/above_my_point/article/details/79751833
今日推荐