数组中已经存在两个JavaScript给我们定义好的重排序的方法:reverse()和sort()方法,下面来简单分析下:
1、reverse() 用于反转数组项的顺序,代码如下:
这里数组的初始顺序是1、2、3、4、5,调用数组的reverse()方法后,其值顺序变为5、4、3、2、1
2、sort()
用法:arrayobj.sort(sortfunction) 参数说明: (1)arrayObj 必选项,任意 Array 实例。 (2)sortFunction 可选项,是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。注意:sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。
如果为 sortfunction 参数提供了一个函数,那么该函数必须为下列返回值之一: 负值,如果所传递的第一个参数比第二个参数小。 零,如果两个参数相等。 正值,如果第一个参数比第二个参数大。没有给sort()方法指定排序规则的代码如下:
给sort()方法指定排序规则 代码如下:
上面只是一种写法,而且个人认为不是很好,下面是其他的写法:
降序排序
写法有很多,所以喜欢那种就用哪种吧!
现在学会了sort的用法,下面就用它实现数组的升序和降序方法,并封装一下,代码如下:
/* @param arr ---需要排序的数组 @return ---返回值为排序完的数组 功能:对数组进行升序排序 */function asc(arr){arr.sort(function(a,b){ return a-b;}); return arr;}/* @param arr ---需要排序的数组 @return ---返回值为排序完的数组 功能:对数组进行降序排序 */function desc(arr){ arr.sort(function(a,b){ return b-a; }); return arr;}
学以致用,亘古不变的真理!