javascript中array类型的重排序方法

1)reverse()方法:会反转数组项的顺序

var values = [1,2,3,4,5];
values.reverse();
alert(values);//5,4,3,2,1

2)在默认情况下,sort()方法按照升序排列数组项,即最小的值位于最前面,最大的值位于最后面。为了实现排序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,以便确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串。

var values = [0,1,5,10,15];
values.sort();
alert(values);//0,1,10,15,5

tips:javascript比较字符串的大小:

字符串的比较,是对两字符串相同位置字符的Unicode编码逐一比较。比如上面的字符串“10”和“15”,前面的几个字符都是相同的,当在"10"与"15"中"0"和"5"开始不同,“5”
的编码值要大于“0”的编码值。
至于如何取得字符串某个字符的Unicode值,可以使用函数charCodeAt(index),比如获得“10”的第2个字符的Unicode值:.charCodeAt(:1);
注:索引值index由0开始而不是1开始哦,所以字符串第2个字符的索引为1

因此,sort()函数可以接收一个比较函数作为参数,以便我们指定那个值位于哪个值的前面。

如下,几个例子:
window.onload = function(){
	//升序排序
	function compare(value1,value2){
		if(value1<value2){
			return -1;
		}else if(value1>value2){
			return 1;
		}else{
			return 0;
		}
	}
	var values = [0,1,5,10,15];
	values.sort(compare);
	alert(values);//0,1,5,10,15
}

window.onload = function(){
	//降序排序
	function compare(value1,value2){
		if(value1<value2){
			return 1;
		}else if(value1>value2){
			return -1;
		}else{
			return 0;
		}
	}
	var values = [0,1,5,10,15];
	values.sort(compare);
	alert(values);//15,10,5,1,0
}

也可以利用减法操作,
window.onload = function(){
	//升序排序
	function compare(value1,value2){
		return value1-value2;
	}
	var values = [0,1,5,10,15];
	values.sort(compare);
	alert(values);//0,1,5,10,15
}

window.onload = function(){
	//降序排序
	function compare(value1,value2){
		return value2-value1;
	}
	var values = [0,1,5,10,15];
	values.sort(compare);
	alert(values);//15,10,5,1,0
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值