比较经典的数组去重和数组排序

Array.prototype.unique = function(){
  var res=[];
  var json = {};
  for(var i=0;i<this.length;i++){
     if(!json[this[i]]){
       res.push(this[i]);
       json[this[i]]=1;
     }
  }  
   return res;
}

数组合并,除了数组自带的方法concat,还可以使用其他的方法。

a=[1,2,3,4,5,6];

b=["foo","bar","fun"];

1、使用for循环来实现:

1 for(var i=a.length-1;i>=0;i--){
2   a.unshift(a[i]);  
3 }

2、使用apply

//在a的基础上添加b
a.push.apply(a,b);

//在b的基础上添加a
b.unshift.apply(b,a)

3、避免最大限度的限制。

function combinationInto(a,b){
   var len = a.length;
   for(var i=0;i<len;i=i+5000){
      b.unshift.apply(b, a.slice(i,i+5000));
}
}

数组排序

1、数组的自带方法sort(),可以设置是按正序,或者按倒序

function compare(a, b){
     return a-b;
}
sort(compare());

2、冒泡排序

function bubble(argument){
   var len=argument.length,temp;
   for(var i=0;i<len;i++){
      for(var j=0;j<len-1;j++){
         if(argument[j]>argument[j+1]){
            temp = argument[j];
            argument[j] = argument[j+1];
            argument[j+1] = temp;
         }
      }

   }  
    return   argument;
}

3、插入排序

var len = arr.length;
  for(var i=1;i<len;i++){

    var temp = arr[i];
		var tp;
    for(var j=i-1;j>=0;j--){

      if(temp>arr[j]){
				tp = arr[j]
        arr[j] = arr[j+1];
				arr[j+1] = tp;

      }else{ 
        break;
      }

    }   

  }
return arr;

}

  

  

  

  

  

原文地址:https://www.cnblogs.com/WaTa/p/5498033.html