今天学习JavaScript数组中已经存在的两个重排序方法:
(1)reverse()(2)sort()
让我们先看一下这两个方法的名字,英语好的小朋友大概已经知道
第一个方法的作用了吧,没错,这个方法会反转数组项的顺序。
而第二个方法在没有参数传进来的时候,会默认调用数组中
每一项的toString()转型方法,然后比较得到的字符串,以确定如何排序。
具体用法看下面的代码。
<script type="text/javascript">
//reverse()方法
var values = [1, 2, 3, 4, 5, 6];
values.reverse();
//可以看到输出的结果是6, 5, 4, 3, 2, 1
alert(values);
//sort()方法
var arrayOne = [1, 20, 15, 5];
arrayOne.sort();
/*输出的结果是1, 15, 20, 5
因为sort()方法在没有参数传递进来的时候
会默认的调用数组每一项的toString()方法
所以会出现上面的结果*/
alert(arrayOne);
/*现在我们来定义一个比较函数compare()
比较函数接受两个参数,如果第一个参数应该
位于第二个参数之后则返回一个负数;如果两个参数
相等,则返回零;如果第一个参数应该位于第二个参数之前,
则返回一个正数。*/
function compareOne(value1, value2){
if(value1 < value2){
return -1;
}
else if(value1 > value2){
return 1;
}
else{
return 0;
}
}
/* 然后我们把这个函数作为一个参数传递给sort()方法
看一下比较的结果*/
var arrayTwo = [15, 5, 20, 1];
arrayTwo.sort(compareOne);
//可以看到输出的结果是1, 5, 15, 20
alert(arrayTwo);
/*对于数值类型,或者其valueOf()方法会返回数值类型的对象,
可以使用一个更简单的比较函数,如下所示。*/
function compareTwo(value1, value2){
return value1 - value2;
}
</script>