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;
}