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 }