javascript中array类型的重排序方法

来源:互联网 发布:响应式瀑布流 js插件 编辑:程序博客网 时间:2024/06/14 09:40

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