两个方法都是用来重排数组的,reverse()倒序排列数组这个就不用多说了,但是因为其用法比较单一,所以有了sort()方法,
sort()原理:sort()方法会调用数组中每个项,然后用toString()方法转型,比较得到的字符串,来确定如何排序,但是真是因为其原理是字符串比较所以就会出现问题,如下:
var arr = [0,1,5,10,15];
arr,sort();
console.log(arr) //0,1,10,15,5
但是sort()接收两个参数,返回三种情况:
(1)如果第一个参数应该位于第二个参数之前返回(第一个参数小于第二个参数)则返回一个负数
(2)如果第一个参数应该位于第二个参数之后返回(第一个参数大鱼第二个参数)则返回一个正数
(3)如果两个参数相等,则返回0
例:
function compare (value1,value2){
if(value1<value2){
return -1;
} else if(value1>value2){
return 1;
}else{
return 0;
};
};
var arr = [0,1,5,10,15];
arr.sort(compare);
console,log(arr); //0,1,5,10,15
或者有一个更简单的方法来写排序
function compare (value1, value2){
return value1 - value2;
};