码迷,mamicode.com
首页 > 编程语言 > 详细

数组重排序方法

时间:2016-11-10 19:22:25      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:数值   重排序   pre   传递   order   function   color   blog   weight   

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

reverse()和sort()方法的返回值是经过排序后的数组。reverse()方法会反转数组项的顺序:

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

在默认情况下,sort()方法按升序排列数组,sort()方法会调用每个数组项的toString()转型方法,然后比较得到字符串,确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串:

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

因此,sort()方法可以接收一个比较函数作为参数。

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

此比较函数可适用于大多数数据类型,只要将其作为参数传递给sort()方法即可:

var values =  [0,1,3,7,9,15];
values.sort(compare);
alert(values);    //0,1,3,7,9,15

也可通过比较函数产生降序排序,只需交换函数返回值即可:

function compare (value1, value2){
    if (value1<value2){
        return 1;
    }else if {
        return -1;
    }else{
        return 0;
    }
}
sort()函数的排序条件是:
参数大于0,arr的相邻两个元素交换位置;
参数小于0,arr的相邻两个元素不交换位置;
参数等于0,arr的相邻两个元素大小相等;所以compare自定义函数必须返回一个数值。
 

2.对于数值类型或者valueOf()方法会返回数值类型的对象类型。

可使用一个更简单的比较函数。此函数只要第二个值减第一个值即可。

function compare (value1,value2){
    return value2 - value1;
}

数组重排序方法

标签:数值   重排序   pre   传递   order   function   color   blog   weight   

原文地址:http://www.cnblogs.com/daisy12/p/6051927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!