重排序方法

数组中已经存在的两个可以直接用来重排序的方法:sort() 和 reverse()。

reverse()

会反转数组顺序

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

但是会受数据以影响不够灵活;

sort()

默认按升序排列数组项;
sort()方法会电泳每个数组项的toString()方法,然后比较得到的字符串,以确定如何排序。

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

即使例子中值得顺序没问题,但sort()方法会根据测试字符串的结果改变原来的顺序,虽然数值5小于数值10,但在字符串比较式,"10"则位于"5"之前。解决方法

function compare(value1, value2){
  if(value1 < value2){
    return -1
  }else if(value > value2){
    return 1
  }else{
    return 0
  }
}

这个例子适用于大多数数据类型

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

你可能感兴趣的:(重排序方法)