JS中数组排序

法一:升序原理:循环嵌套即双向遍历,在从前往后的遍历过程中,如果前一个位子大于后一个位子,把前一个位子的值付给后一个位子,

在从后往前遍历过程中如果前一个值大于后一个的值,把前面的值付给后面,过程中把被赋值位子的值用变量接收在赋值,否则无效。

降序同理

function getNew(a){
            for (var i = 0; i < a.length; i++) {
                for (var j= a.length - 1; j>= 0; j--) {
                     if(a[i]>a[i+1]){
                        var elem=a[i];
                        a[i]=a[i+1];
                        a[i+1]=elem;
                    }else if(a[j-1]>a[j]){
                        var sm=a[j];
                        a[j]=a[j-1];
                        a[j-1]=sm;
                    }
                }
            }
            console.log(a);
        }
        getNew([6,2,3,1,10,8]);//[1, 2, 3, 6, 8, 10]

法二:自定义比较器(匿名函数),简单暴力快捷

function getNew(a){
            a.sort(function(a,b){return a-b});//升序
           //a.sort(function(a,b){return b-a});降序
            console.log(a);
        }
        getNew([6,2,3,1,10,8]);//[1, 2, 3, 6, 8, 10]

 

posted @ 2016-04-22 10:57  逗伴不是瓣  阅读(541)  评论(0编辑  收藏  举报