JavaScript排序方法

来源:互联网 发布:c 遍历二维数组 编辑:程序博客网 时间:2024/06/05 09:15

冒泡排序

这里写图片描述

    <script type="text/javascript" charset="UTF-8">        var arr=[1,8,9,6,7,5,4];        for(var i=0; i<arr.length-1;i++){            for(var j=1;j<arr.length;j++){                if (arr[j]>arr[j+1]){                    temp=arr[j];                    arr[j]=arr[j+1];                    arr[j+1]=temp;                }                console.log("第"+(i+1)+"趟"+arr);            }        }        console.log(arr);    </script>

这里写图片描述

快速排序

这里写图片描述

    <script type="text/javascript" charset="UTF-8">        var arr=[1,8,9,6,7,5,4];        function quick(arr) {            if(arr.length <= 1){                return arr;            }            console.log(arr);            var result=[];            var left=[];            var right=[];            var pivot=arr[0];//指针从arr[0]开始            //遍历数组下标,小的放在left[],大的放在right[]            for(var i=1;i<arr.length;i++){                if(arr[i]<pivot){                    left.push(arr[i]);                }else{                    right.push(arr[i]);                }            }            //左右数组迭代并与指针数组            result=quick(left).concat(pivot,quick(right));            return result;        }        arr=quick(arr);        console.log(arr);    </script>

这里写图片描述

系统内置的sort方法

注意!简单的sort根据字符编码排序:

    <script type="text/javascript" charset="UTF-8">        var arr=[10,8,9,6,7,5,4];        arr.sort();        console.log(arr);    </script>

这里写图片描述
正常排序:

   <script type="text/javascript" charset="UTF-8">        var arr=[10,8,9,6,7,5,4];        arr.sort(function (a,b) {            /*或者是直接return a-b;*/            if(a>b){                return 1;            }else{                return -1;            }        });        console.log(arr);    </script>

sort函数十分好用,能够高度可自定义!完成按条件(按对象的某个属性)排序

   <script type="text/javascript" charset="UTF-8">        var arr=[            {"name":"Tom","Math":49,"English":89},            {"name":"Mike","Math":29,"English":23},            {"name":"Amy","Math":69,"English":50}        ];        //按数学成绩排序        arr.sort(function (a,b) {            if(a.Math>b.Math){                return 1;            }else{                return -1;            }        });        console.log(arr);    </script>

这里写图片描述

原创粉丝点击