比较经典的数组去重和数组排序
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; }