js增强数组排列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cheng_cuo_tuo/article/details/86572056
<title>增强数组排列</title>
<script>
/*
		sort()方法默认按字母顺序进行排序,按照其他方式排序需要为方法添加一个比较函数的参数,该函数是比较两个值,
	然后返回一个用于说明两个值的相对顺序的数字。
		a在b的前面返回一个小于0的数字;a和b相等放回0;a在b的后面返回一个大于0的数字;
*/
function f1(a, b){
	return (a - b);	
}
var a = [3, 1, 2, 4, 5, 7, 6, 8, 0, 9];
a.sort(f1);
document.write(a + "</br>");//0,1,2,3,4,5,6,7,8,9

function f2(a, b){
	return -(a - b);	
}
var b  = [3, 1, 2, 4, 5, 7, 6, 8, 0, 9];
b.sort(f2);
document.write(b + "</br>");//9,8,7,6,5,4,3,2,1,0

//根据奇偶性排序
//保证偶数在后面
function f3(a, b){
	var a = a % 2;
	var b = b % 2;
	if (a == 0) return 1;//第一个数是偶数,把它调到后面
	if (b == 0) return -1;//第二个是偶数,保持位置不变
	//return 0;
}
var c = [3, 1, 2, 4, 5, 7, 6, 8, 0, 9];
c.sort(f3);
document.write(c + "</br>");//3,1,5,7,9,0,8,6,4,2

//对字母进行排序,区分大小写
var w = ["aB", "Ab", "Ba", "bA"];
w.sort();
document.write(w + "</br>");//Ab,Ba,aB,bA 

//排序,将小写字母排在左边,大写的排在右边
//是按照ASCII进行修改的
function f4(a, b){
	return (a < b);	
}
var w = ["aB", "Ab", "Ba", "bA"];//bA,aB,Ba,Ab
w.sort(f4);
document.write(w + "</br>");

//不区分大小写,对单词进行排序
function f5(a, b){
	var a = a.toLowerCase();
	var b = b.toLowerCase();
	if (a < b){
		return 1;	
	}	
	else
		return -1;
}
var w = ["aB", "Ab", "Ba", "bA"];//bA,aB,Ba,Ab
w.sort(f5);
document.write(w + "</br>");//Ba,bA,aB,Ab

//将浮点数和整数分开
function f6(a, b){
	if (a > Math.floor(a)) return 1;
	if (b > Math.floor(b)) return -1;	
}
var n = [3.5555, 1.23456, 3, 2.1111, 5, 7, 3];
n.sort(f6);
document.write(n + "</br>");//3,5,7,3,2.1111,1.23456,3.5555

</script>

猜你喜欢

转载自blog.csdn.net/cheng_cuo_tuo/article/details/86572056
今日推荐