1. 程式人生 > >陣列去重和排序

陣列去重和排序

一、常見的陣列排序方法:

 
  
  
//冒泡
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));