数组去重和排序

一、常见的数组排序方法:

 
 
//冒泡
function bubbleSort(arr){
    var r=1,i=0;
    for(r=1;r<arr.length;r++){
        for(i=0;i<arr.length-1;i++){
            arr[i]>arr[i+1]&&(arr[i+1]=[arr[i],arr[i]=arr[i+1]][0])
        }
    }
}
 
 
//插入

    var arr=[2,4,1,3,5];
    function insertSort(arr){
        for(var i=1;i<arr.length;i++){
            var temp=arr[i];
            var p=i-1;
            while(temp<arr[p]&&p>=0){
                arr[p+1]=arr[p];
                p--;
            }
            arr[p+1]=temp;
        }
    }
    insertSort(arr);
    console.log(arr);

二、数组去重方法

var arr=["air","b","clock","army","clock","air"];
    //1.遍历
    function unique1(arr){
        for(var i=0,unique=[];i<arr.length;i++){
            var r=unique.indexOf(arr[i]);
            if(r==-1){
                unique.push(arr[i]);
            }
        }
        return unique;
    }
    console.log(String(unique1(arr)))
    //2.hash
    function unique2(arr){
        for(var i=0,unique={};i<arr.length;i++){
            unique[arr[i]]===undefined&&(unique[arr[i]]=1);
            
        }
        arr=[];
        for(var key in unique){
            arr.push(key);
        }
        return arr;
    }
    console.log(String(unique2(arr)))
    //3.正则
    function unique3(arr){
        var reg=/(^|,,)([^,]+)(..\2)*/g;
        return arr.sort().join(",,").replace(reg,"$1$2").split(",,");
    }
    console.log(unique3(arr));

猜你喜欢

转载自www.cnblogs.com/qinmanyu/p/10105243.html